类中的__call__()

Posted long-holiday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类中的__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__()方法

 

以上是关于类中的__call__()的主要内容,如果未能解决你的问题,请参考以下文章

在类中调用父类的 __call__ 方法

python类中内置方法之__call__

PyTorch中nn.Module类中__call__方法介绍

01类内置方法

PHP中的11个魔术方法总结:__construct,__destruct__call等

PHP通过_call实现多继承