__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__()

 

只有永不遏止的奋斗,才能使青春之花,即便是凋谢,也是壮丽地凋谢

评论关闭