[英]add items to the list of an object
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)
我正在尝试向 bag1 添加水,但我不知道为什么“bag1.add_item("water")”会影响 bag2
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)
您所要做的就是添加def __init__(self)
。 在类声明中声明变量使它们成为“类”成员而不是实例成员。 在__init__
方法中声明它们可确保在对象的每个新实例旁边创建成员的新实例,这是您正在寻找的行为。
请注意, items = []
已声明为类变量,因此该类的所有实例将共享items
的相同内存位置。 对于每个实例都有自己的items
列表,您需要使用关键字self
,例如:
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)
有关其他详细信息,请参阅此文档。
以下代码应该可以解决问题:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.