以魔法属性__call__为例子:
class Animal(object):
def __init__(self):
pass
def __call__(self, *args, **kwargs):
print('Animals are our friends')
lion = Animal()
lion()
输出结果:
Animals are our friends
可不可以在定义的时候,给__call__改名字,最后还能起到__call__的作用呢?我是这样做的:
class Animal(object):
def __init__(self):
pass
def _call_everyone(self, *args, **kwargs):
print('Animals are our friends')
__call__ =_call_everyone ##就是这里,改名可以当__call__用啊
lion = Animal()
lion()
输出结果是一摸一样的哦!