我应该如何在类的方法之间传递变量?
像这样,作为一个论点:
class Yadayada:
def foo(self):
for i in somelist:
pass_var = i * blah blah blah
output = self.bar(pass_var)
def bar(self,pass_var):
a= pass_var * whatever
return a
或者像这样,将其存储在变量中?
class Yadayada:
def foo(self):
for i in somelist:
self.pass_var = i * blah blah blah
output = self.bar()
def bar(self):
a= self.pass_var * whatever
return a
最好的方法是什么?为什么?或者说这有什么关系吗?
注意:我不会在其余代码中使用变量 pass_var。
这是一个设计决定。将其作为参数传递将在该函数的生命周期内保留传递的值。将其作为属性存储在对象上将使其在实例的生命周期内保留 - 这可能会更长。
你应该问自己的问题是该值有助于描述实例还是实例拥有的东西?- 如果其中任何一个为真,则将其存储。
如果它只是用来计算值的东西(这就是它听起来的样子),那么就没有理由存储它。存储它意味着您以后想使用它。
如果您不确定,最好将值传递给函数。这减少了出错的机会(在类上未设置值时调用函数),并且减少了所使用的内存量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)