gpt4 book ai didi

python - 将类实例变量分配给 Python 方法中的局部变量

转载 作者:行者123 更新时间:2023-12-02 17:19:11 25 4
gpt4 key购买 nike

可以将类实例变量分配给方法内的局部变量,例如:

class Foo(object):
def __init__(self):
self.bar = 'bar'

def baz(self):
# assign instance variable to local variable with a method
bar = self.bar

# do work with local variable
bar = "qux"

# update value of instance variable
self.bar = bar
return self

通过这样做,可以在 Foo.baz() 的范围内引用 bar 而不是 self.bar

这样做是错误的还是 Unpythonic 的?

最佳答案

这样做完全没问题。您可能会争辩说您不需要这样做(至少在您的示例中,如果您不使用局部变量,您可以将方法减少到两行),但是没有这样做确实有任何问题。

有某些效果可能最终使一种或另一种方式更可取:

  • 创建一个局部变量显然会创建另一个局部变量
  • 为此设置一个临时局部变量需要更多代码,增加了方法的整体复杂性
  • 访问局部变量比访问实例属性更快
  • 只有一个点可以更新实例属性,使方法更接近原子性(尽管它不会是纯原子的)并避免属性上的中间值
  • 同样,如果访问或修改 self.bar 有副作用,那么只执行一次可能比多次触发它们更可取

所有这些影响通常都非常小,根本不重要。然而它们就在那里,也许它们可能与您相关。在那之前,只使用您最熟悉的东西。

关于python - 将类实例变量分配给 Python 方法中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44200715/

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