class Player():
zones = {}
def __init__(self):
self.zones['hand'] = []
def InitHand(self):
for a in range(5):
self.zones['hand'].append(a)
lst = []
lst.append(Player())
lst.append(Player())
lst[0].InitHand()
print lst[1].zones['hand']
这会打印“[0, 1, 2, 3, 4]”,但我只初始化了第 0 个元素......如下所示将它们更改为数组可以解决问题,但对于我来说,我无法弄清楚为什么会这样发生。
class Player2():
zones = []
def __init__(self):
self.zones = []
def InitHand(self):
for a in range(5):
self.zones.append(a)
lst = []
lst.append(Player2())
lst.append(Player2())
lst[0].InitHand()
print lst[1].zones
这会按预期打印“[]”