Skip to main content
 首页 » 编程设计

Python,可变对象作为默认参数,有什么办法解决吗

2025年05月04日14zdz8207

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”的每个对象的列表都是相同的。