慕前端0137584
2021-08-19 10:49
class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(self, friend): print('My name is {}...'.format(self.name)) print('My friend is {}...'.format(friend)) >>> p = Person('Bob', 'Male')
>>> p('Alice') # ==> 用函数的方式调用Person类的实例p My name is Bob... My friend is Alice...
简单来说
p('Alice') 是p.__call__('Alice')的缩写。
是说这个__call__类方法吗
我的想法是:原本创建了Python中的一个类(还没有创建这个类中的实例),然后再定义类的时候采用了__call__的类方法使整个类(中的实例对象)由。不可调动 变为 可调动 的模式,可以让类中的实例对象可以直接调用函数
例:
class Words(object):
def say():
print("Python语言Good")
say()
say.__call__()
两则代码的输出都是:
"Python语言Good"
say() 是 say.__call__()的缩写
采用__call__就是重新加载了函数()运算符
Python3 进阶教程(新版)
41910 学习 · 236 问题
相似问题