【1.133】__call__ 方法的执行是由对象后加括号触发的,而构造方法的执行是由创建对象触发的

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

注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;

而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()

 

class Foo:

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

        print('__call__')


obj = Foo() # 执行 __init__
obj()       # 执行 __call__

 

posted @ 2019-07-03 18:12  科学小怪癖  阅读(172)  评论(0)    收藏  举报