我刚刚输入了代码。我希望John只是team_B的成员。当我运行代码时,John正在加入两个团队,即使我使用“deepcopy”:
import copy
class team:
players = []
team_A = team()
team_A.players.append("Tom")
team_A.players.append("Peter")
team_A.players.append("Mario")
team_B = copy.deepcopy(team_A)
team_B.players.append("John")
任何人都可以解释这个并帮我修复它吗?
答案 0 :(得分:3)
目前players
是一个在所有团队对象之间共享的类变量,您希望每个实例拥有自己的播放器列表。
class Team:
def __init__(self):
self.players = []
__init__
代码在对象构造上运行,请注意self
关键字,这指的是团队的当前实例。