假設我有一個類Game
,屬性player1
,player2
和Q
。 player1
和player2
本身也是Player
類別的實例,該類別也具有名爲Q
的屬性。我想這樣做,當我實例化一個Game
時,它共享它的Q
與它實例化的Player
的實例。如何在Python中的不同類之間共享實例變量
爲了說明我的意思,考慮下面的代碼:
class Game:
def __init__(self, player1, player2):
self.player1 = player1
self.player2 = player2
self.Q = {}
class Player:
def __init__(self, mark):
self.mark = mark
self.Q = {}
player1 = Player(mark="X")
player2 = Player(mark="O")
game = Game(player1, player2) # Instantiate a game with player 1 and player 2
game.Q["some key"] = "some value"
# I would like this to happen automatically
player1.Q = game.Q
player2.Q = game.Q
我想player1
和player2
的Q
變量時,它改變得到自動更新game.Q
。我怎樣才能做到這一點?
'self.Q = self.player1.Q = self.player2.Q = {}'在構造函數中完成了。 –
@Rawing:你也可以寫出完整的答案。 –
q的內容有些模糊地描述,但我想,在一個結構良好的解決方案中,玩家實例應該接收對其遊戲的引用,而不是複製成員變量。 – guidot