class A:
def __init__(self, n=[0]):
self.data = n
a = A()
print a.data[0] #print 0
a.data[0] +=1
b = A()
print a.data[0] #print 1, desired output is 0
在上面的例子中,有没有办法在 __init__() class A 中为可变对象(例如列表或类)提供默认参数,但是 b 不受操作a的影响吗?
请您参考如下方法:
你可以试试这个:
class A:
def __init__(self, n=None):
if n is None:
n = [0]
self.data = n
这避免了您在这里面临的最大问题,即您的类型“A”的每个对象的列表都是相同的。
