gpt4 book ai didi

python - 我什么时候应该实现 __call__

转载 作者:太空狗 更新时间:2023-10-29 16:55:57 25 4
gpt4 key购买 nike

在 python 中,您可以通过实现 __call__ 方法使实例可调用。例如

class Blah:
def __call__(self):
print "hello"

obj = Blah()
obj()

但我也可以实现自己的方法,比如“运行”:

class Blah:
def run(self):
print "hello"

obj = Blah()
obj.run()

我什么时候应该实现__call__

最佳答案

这很难回答。我的意见是你永远不应该定义 __call__ 除非你的实际目标是创建一个函数。这不是您在创建传统对象后会做的事情。

换句话说,如果您一开始就想“我要创建一个对象”,那么您永远不应该最终实现 __call__。另一方面,如果您开始考虑“我要创建一个函数……但我希望我可以使用对象框架让我的函数具有某种状态”,那么您可以将函数创建为一个对象状态,并定义 __call__ 使其像函数一样工作。

我想包括 @Paul Manta 提供的最后一点建议在对该问题的评论中,他写道:

If you're unsure if you need __call__, then you don't need __call__

我认为这是合理的建议。

关于python - 我什么时候应该实现 __call__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com