面向对象高阶-07\_\_call\_\_

__call__

对象后面加括号时,触发执行。python

注:code

  • 构造方法的执行是由建立对象触发的,即:对象 = 类名() ;
  • 而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()

列子---> 和 __init__ 结合着看对象

class Foo:
    # 这边 建立实例时候回触发 __init__    
    def __init__(self):
        print('__init__触发了')

    def __call__(self, *args, **kwargs):

        print('__call__触发了')


obj = Foo()  # 执行 __init__
# 输出结果
# __init__触发了

obj()  # 执行 __call__
# 输出结果
# __call__
相关文章
相关标签/搜索