Python 当其他对象处于活动状态时,要追加的类内的列表
我正在创建一个学校项目,需要在列表中记录子程序每次迭代的事件。然而,它附加了两个玩家列表。我该如何阻止这种情况发生 例如:Python 当其他对象处于活动状态时,要追加的类内的列表,python,Python,我正在创建一个学校项目,需要在列表中记录子程序每次迭代的事件。然而,它附加了两个玩家列表。我该如何阻止这种情况发生 例如: class Player: l = list() def append_list(self,i): self.l.append(i) p1 = Player() p2 = Player() for i in range(0,5): p1.append_list(i) print(p1.l) p2.append_
class Player:
l = list()
def append_list(self,i):
self.l.append(i)
p1 = Player()
p2 = Player()
for i in range(0,5):
p1.append_list(i)
print(p1.l)
p2.append_list(i)
print(p1.l)
此代码输出:
[0]
[0, 0]
[0, 0, 1]
[0, 0, 1, 1]
[0, 0, 1, 1, 2]
[0, 0, 1, 1, 2, 2]
[0, 0, 1, 1, 2, 2, 3]
[0, 0, 1, 1, 2, 2, 3, 3]
[0, 0, 1, 1, 2, 2, 3, 3, 4]
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
但我需要它输出:
[0]
[0]
[0, 1]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
使用单独的实例变量而不是共享类变量-这样,每个玩家实例都有自己的列表而不是共享列表:
class Player:
def __init__(self):
self.l = [] # create a instance list l
def append_list(self,i):
self.l.append(i)
# other code identical
输出:
[0]
[0]
[0, 1]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]
更多: