将项目添加到对象列表中

abc*_*XYZ 2 python python-3.x

class bag:

    items = []

    def add_item(self,x):
        self.items.append(x)


if __name__ == "__main__":

    bag1 = bag()
    bag2 = bag()

    bag1.add_item("water")
    print(bag2.items)
    

Run Code Online (Sandbox Code Playgroud)

我正在尝试向 bag1 添加水,但我不知道为什么“bag1.add_item("water")”会影响 bag2

Say*_*han 5

class bag:

    def __init__(self):
        self.items = []

    def add_item(self,x):
        self.items.append(x)


if __name__ == "__main__":

    bag1 = bag()
    bag2 = bag()

    bag1.add_item("water")
    print(bag2.items)
Run Code Online (Sandbox Code Playgroud)

您所要做的就是添加def __init__(self). 在类声明中声明变量使它们成为“类”成员而不是实例成员。在__init__方法中声明它们可确保在对象的每个新实例旁边创建成员的新实例,这就是您正在寻找的行为。