__call__用法简谈
python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象
在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象
普通类未实现__call__的方法,实例是不可调用的,先看
1 class Valley: 2 ... 3 4 5 if __name__ == '__main__': 6 v = Valley() 7 print(callable(v))
output:
False
实现了__call__方法后
1 class Valley: 2 def __call__(self, *args, val='测试', **kwargs): 3 print(val) 4 5 6 if __name__ == '__main__': 7 v = Valley() 8 v() 9 # 其实质 10 v.__call__()