假设我有一个类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