在类中实现__call__方法,一个类实例可以变成一个可调用对象。
在Python中,函数其实是一个对象:
由于 f 可以被调用,所以,f 被称为可调用对象。
所有的函数都是可调用对象。
一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
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) p = Person('Bob', 'male') print(p('Tim'))
单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。
Python类的__call__方法 (将类实例变成可调用对象)
于 2021-08-12 20:47:17 首次发布