python魔方方法__call__
python魔方方法__call__
目录
- python魔方方法__call__
- 一、简介
- 二、详解
- 三、代码
- 四、Reference
一、简介
当一个类,实现了__call__
方法,那么这个类的实例对象,便可以像调用函数一样来,利用调用运算符()
进行调用,执行__call__
方法中重写的内置逻辑。
二、详解
语法:
def __call__(self, *args):...return something
三、代码
import randomclass BingoCage(object):def __init__(self, items):self.items = list(items)random.shuffle(self.items)def pick(self):try:return self.items.pop()except IndexError:raise LookupError('Pick form empty BingoCage!')def __call__(self):return self.pick()bingo = BingoCage((1,2,3,4,5,6))
print(bingo.items)
print(bingo.pick())
bingo()
[2, 3, 1, 4, 5, 6]
6
5
我们定义了一个宾果类,并且定义了一个pick方法弹出这个类的最后一个元素,然后我们定义了__call__方法,使得可以直接用调用运算符来调用这个类的实例对象。
四、Reference
《FulentPython》
python魔方方法__call__相关推荐
- python魔方方法__getitem__、__setitem__和__len__
python魔方方法__getitem__.setitem__和__len 目录 python魔方方法__getitem__.__setitem__和__len__ 一.简介 二.详解 三.代码 四. ...
- python魔方方法__add__、__mul__、__sub__、__truediv__
python魔方方法__add__.__mul__.__sub__.__truediv__ 目录 python魔方方法`__add__.__mul__.__sub__.__truediv__` 一.简 ...
- Python —— 魔方方法
在Python中 方法名为:XXX() 就是魔方方法 init() 初始化函数,用于完成默认的设置 new() 返回一个对象的实例,init() 无返回值 new()是一个类方法 del() 析构方法 ...
- Python魔方方法详解
原文链接: https://fishc.com.cn/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtype ...
- Python——魔方方法
在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",中文称『魔术方法』,例如类的初始化方法 init ,Python中所 ...
- Python 魔方方法
class Person:# 默认打印对象,显示类名+地址# 重写该方法,打印该方法的返回值def __str__(self):return '我叫{},今年{}岁'.format(self.name ...
- Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 目录 0.复习 1.类外部添加和获取对象属性 2.类内部操作属性 3.魔法方法 3.1.__i ...
- python之有关魔方方法的内容
魔方方法: 在python的类中,以下划线开头,两个下划线结尾的方法,如常见的:init,str,__del__等,就被称为魔方方法,这些方法在类或对象进行特定的操作时会被自动调用,我们可以使用或重写 ...
- Python Day11 魔方方法
Python种的魔方方法 Python种有许多魔方方法供我们使用 魔法方法被双下划线包围,例如__init__. 魔法方法的第一个参数应为cls(类方法) 或者self(实例方法). 下面介绍常见的魔 ...
最新文章
- 操作系统OS-分页、页表
- ASA对FTP的审查抓包测试
- 实用插件_精选 10 个非常实用的 VS Code 插件
- eyoucms 入门必备
- React Router入门指南
- linux mod_ssl源码安装,linux下不重新编译apache添加安装mod_ssl模块和错误的处理方法...
- centos下配置java环境变量
- ros开发增加clion常用模板及初始化配置(五)
- 【java学习之路】(java框架)005.mybatis框架整合及逆向工厂
- java完成项目需要哪些技术_java_web项目开发需要掌握哪些技术
- python源码剖析-笔记2
- GAN学习记录(四)——条件生成对抗网络CGAN
- 模拟停车场管理系统(栈和队列的应用)
- 笔记本计算机无法启动怎么解决,笔记本开机进不了系统,教您笔记本开机无法进入系统怎么办...
- 有卡却显示无服务器,为什么卡一直显示无服务
- 关于星巴克在故宫开店
- 午芯高科“电容式”MEMS高性能数字气压传感器WXP380
- ipad/iphone的浏览器,为啥可以播放优酷土豆等在线视频
- 如何让一个div跟随鼠标移动
- [系列] - go-gin-api 规划目录和参数验证(二)