面向对象高阶-07\_\_call\_\_
__call__
对象后面加括号时,触发执行。
注:
- 构造方法的执行是由创建对象触发的,即:对象 = 类名() ;
- 而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
列子---> 和 __init__ 结合着看
class Foo:
# 这边 创建实例时候回触发 __init__
def __init__(self):
print('__init__触发了')
def __call__(self, *args, **kwargs):
print('__call__触发了')
obj = Foo() # 执行 __init__
# 输出结果
# __init__触发了
obj() # 执行 __call__
# 输出结果
# __call__