可以将类实例变量分配给方法中的局部变量,例如:
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
通过这样做,可以在bar
的范围内引用self.bar
而不是Foo.baz()
。
这样做是错误的,还是Unpythonic?
答案 0 :(得分:2)
这样做非常好。你可能会说你不需要这样做(至少在你的例子中,如果不使用局部变量,你可以将方法减少到两行),但是没有真的有任何问题。
某些影响可能最终会使一种或另一种方式更为可取:
self.bar
有副作用,那么只做一次可能比多次触发它们更合适所有这些效果通常都是极小的,根本不重要。然而他们在那里,可能只是他们可能与你相关。在那之前,只需使用你最熟悉的东西。