__call__用法简谈

守听  金牌会员 | 2022-10-18 10:26:00 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 551|帖子 551|积分 1653

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表