想要类的实例变为一个可调用的对象,就需要使用到当前的方法
例子
代码
from typing import Any
class Person:
def __init__(self,name,age) -> None:
self.name = name
self.age = age
def __call__(self, *args: Any, **kwds: Any) -> Any:
print('lala',args,kwds)
person = Person(name="WuKong",age=19)
person("hello",name="haha")
效果
当我们运行上面的代码的时候,打印如下
lala ('hello',) {'name': 'haha'}
知识点
- 如果想要将类的实例变为一个可调用的对象,那么就要加上魔术方法
__call__
方法 - 当实例进行调用的时候,就会调用当前的方法