Python基础篇之__call__
来源:互联网 发布:ucloud 阿里云 哪个好 编辑:程序博客网 时间:2024/06/08 17:48
python中 __call__
在Python中,函数其实是一个对象:
f = abs
f.__name__
‘abs’
f(-123)
123
由于 f 可以被调用,所以,f 被称为可调用对象。
所有的函数都是可调用对象。
一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
我们把 Person 类变成一个可调用对象:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __call__(self, friend): print 'My name is %s...' % self.name print 'My friend is %s...' % friend
现在可以对 Person 实例直接调用:
p = Person(‘Bob’, ‘male’)
p(‘Tim’)
My name is Bob…
My friend is Tim…
单看 p(‘Tim’) 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。
阅读全文
0 0
- Python基础篇之__call__
- python 特殊方法之__call__()
- Python __call__
- python __call__
- Python __call__
- python __call__
- Python __call__
- python中的 functools __call__ 内嵌函数 异曲同工之处
- Python语言学习讲解十八: __new__、__init__、__call__之详解
- python的__call__
- [Python小菜]__call__是什么
- python __call__ 函数
- Python __new__ ,__init__,__call__
- python的__call__
- Python中的__init__,__call__
- Python中的__init__,__call__
- python __call__ 函数
- python的__call__方法
- CTF中遇见的PHP伪协议运用
- Mysql-5.5源码安装
- Android:实现IM多人员组合的群组头像
- 浅谈网游加速器
- call和apply
- Python基础篇之__call__
- service日志相关持久化操作
- java中自定义使用{0}占位符功能之MessageFormat类
- IDEA 没有创建servlet选项
- 设计模式 状态模式 以自动售货机为例
- 微信公众号朋友圈压力测试
- python flask mysql-python
- redis--5大对象-8种编码
- 机器学习(9)贝叶斯分类