2017-09-10 5 views
1

私はちょうどコードを入力しました。私はジョンがチームBのみのメンバーであることを期待していました。私は、コードを実行すると、ジョンは私が「deepcopy」を使用した場合であっても、両チームに追加beeingてさ:ディープコピー - ベクトルを持つオブジェクト

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

誰もがこれを説明し、私はそれを修正する助けてもらえますか?

答えて

3

現在playersすべてのチームオブジェクトで共有されるクラス変数です。各インスタンスには独自のプレーヤーリストが必要です。

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

__init__コードは、このチームのこの現在のインスタンスを指し、selfキーワードを注意し、オブジェクトの構築に実行されます。

関連する問題