类定义:
class tr():
def __init__(self,l=[]):
self.l = l
def added(self):
self.l.append(1)
colt1 = tr()
colt1.added()
print(colt1.l)
输出为[1]在上述代码之后执行以下代码
colt2 = tr()
colt2.added()
print(colt2.l)
输出为[1, 1]
我希望第二段的输出也为[1],该类从init函数获取数据成员并且还具有默认参数。那么我应该如何改变代码来获得这个输出呢?
标准的做法是为您的方法使用这种东西__init__
:
def __init__(self, l=None):
if l is None:
l = []
self.l = l
您可以查看此常见问题解答条目:https ://docs.python.org/3/faq/programming.html#why-are-default-values-shared-between-objects
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句