提问者:小点点

如何用相同的列表初始化list类型的两个属性?


class Bins: 
   
    def __init__(self, id:str, initial_list:list):
        self.id_ = id
        self.capacities = initial_list 
        self.remaining_capacities = initial_list
        
example = Bins("t1",[0,0,1])
example.capacities[1] = 1
print(example.remaining_capacities) # gives [0, 1, 1]

如图所示,这种方法的问题是我不能独立地修改属性。


共1个答案

匿名用户

您可以使用内置的list.copy()进行深度复制。

    def __init__(self, id:str, initial_list:list):
        self.id_ = id
        self.capacities = initial_list.copy()
        self.remaining_capacities = initial_list.copy()