Python 对象特殊方法:(二)对象可调用接口
来源:互联网 发布:每次开机都要修复网络 编辑:程序博客网 时间:2024/05/29 17:27
对象可调用接口
对象通过__call__(self [, *args [, **kwargs]])方法模拟函数行为
如果一个对象提供了__call__()方法即可被调用。下面给几个例子:
例1,
class DistanceFrom(object): def __init__(self, origin): self.origin = origin def __call__(self, x): return abs(x - self.origin)nums = [1, 32, 23, 210, 213, 45]nums.sort(key=DistanceFrom(10))
这是《参考手册》里的例子,对象DistanceFrom(10)是可调用的单参方法,做为sort的key函数。
例2,
class T(object): passt = T()T.__call__ = lambda self: "call in T"t() # "call in T"
这个稍微有点意思,T中__call__是非绑定方法,所以有self参数(当然self只是规范,换做this, obj, anything都可以)。可以再上面基础上再做修改
t.__call__ = lambda : "call in t"t() # "call in T"
t.__call__是绑定方法,所有不需要有self参数。执行t()返回“call in T”,没没有得到后定义的 “call in t”,这是因为t.__call__保存的t.__dict__中,而特殊方法的调用不会从对象的dict,而是直接从类中查找。
0 0
- Python 对象特殊方法:(二)对象可调用接口
- python 函数是可调用对象和特殊方法__call__
- Python可调用对象
- Python的可调用对象
- Python的可调用对象
- python的可调用对象
- python __call__ 可调用对象
- python __call__ (可调用对象)
- python __call__ (可调用对象)
- python对象特殊方法列表
- Python 对象特殊方法:(一)对象创建与销毁
- Python可调用对象__call__方法的用法分析
- 【python学习】之五、可调用对象
- python中所有可调用对象
- python面向对象编程(2):特殊方法
- Python对象特殊方法及其用法演示
- Python面向对象5:特殊方法
- 可调用对象
- 机智云开源框架初始化顺序
- PHPki
- ROS系列一之Robot发展史
- 单例模式(C++)
- 文本搜索必学命令-grep egrep fgrep用法以及正则表达式
- Python 对象特殊方法:(二)对象可调用接口
- 乱码问题整理
- 1622-5 孔富晨 总结《2017年1月18日》 【连续第110天总结】
- Dubbo学习
- chrome livestyle插件
- Domino群集配置方法
- struts2的执行流程
- URL和资源
- php函数symlink详解