什么是人民的使用意见__call__
.我只是很少看到它使用,但我认为当你知道一个类将被用于某些默认行为时,它是一个非常方便的工具.
Owe*_* S. 19
我认为你的直觉是正确的.
从历史上看,OO世界中使用了可调用对象(或者我有时称之为"仿函数"的对象)来模拟闭包.在C++中,它们经常是不可或缺的.
但是,__call__
在Python世界中有相当多的竞争:
我要说的是,使用时间__call__
是指上述其中一个选项不能提供更好的服务.或许,请检查以下标准:
run()
或者doStuff()
或者go()
或者是流行且永远多余的doRun()
,你可能会有一个候选人.我喜欢的一个例子是UI命令对象.设计的目的是让他们的主要任务是执行comnand,但是使用额外的方法来控制他们的显示作为菜单项,例如,在我看来,这仍然是你仍然想要一个可调用对象的东西.