类中的__call__()
class A: def __call__(self, *args, **kwargs): print('执行了call方法') def call(self): print('执行call方法') class B: def __init__(self,cls): print('在实例化A之前做一些事情') self.a=cls() self.a() print('在实例化A之后做一些事情') a=A() a()#对象()相当于调用__call__方法 #A()() 类名()(),相当于先实例化得到一个对象,对象() 和上面的结果一样。相当于调用__call__()方法 B(A)#把A传给cls A实例化后的对象赋值给属性a self.a()相当于调用__call__()方法