Python 特殊方法__call__

在Python中,一个函数也是一个对象。

Python中一切皆对象,无论是数字,字符串,还是函数都是对象,甚至类本身也是元类type的对象。

任何对象,只要实现了__call__ 方法,就可以视为一个函数。

Python是支持鸭子类型的动态语言。不关心实际类型,只关心是否有某一类型行为。

举个例子

>>> def foo(name):
...     print(name)
...
>>> foo  # 函数是 function类的对象
<function foo at 0x103c52048>
>>> foo('Tom') # 直接调用函数
Tom
>>> foo.__call__('Tom') # 等价于调用函数对象的__call__方法
Tom
posted @ 2018-07-06 10:05  Joseph_Chuh  阅读(192)  评论(0编辑  收藏  举报