欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python类中的__call__方法

程序员文章站 2022-06-12 08:25:22
...
class A:
    def __call__(self, *args, **kwargs):
        print('执行了call方法')
        
class B:
    def __init__(self,cls):
        print('在实例化A之前做一些事情')
        self.a=cls()()
        print('在实例化A之后做一些事情')

a()#对象()相当于调用__call__方法
#A()() 类名()(),相当于先实例化得到一个对象,对象() 和上面的结果一样。相当于调用__call__()方法
B(A)#把A传给cls A实例化后的对象赋值给属性a self相当于调用__call__()方法