我只是在下面输入代码。我希望约翰只成为team_B的成员。当我运行代码时,即使我使用“ deepcopy”,John也会加入两个团队:

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")


谁能解释这个问题并帮助我解决?

最佳答案

当前players是一个类变量,在所有团队对象之间共享,您希望每个实例都有自己的球员列表。

class Team:
    def __init__(self):
        self.players = []


__init__代码在对象构造上运行,请注意self关键字,这是指Team的当前实例。

关于python - 深度复制-具有向量的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46145592/

10-12 16:56