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

猜你喜欢

转载自www.cnblogs.com/josephchuh/p/9272065.html