假设我有一类Game
具有属性player1
,player2
和Q
。player1
并且player2
它们本身是该类的实例,该类Player
也具有称为的属性Q
。我想使它这样,当我实例化一个Game
,它的股票其Q
用的情况下,Player
它是用实例化。
为了说明我的意思,请考虑以下代码:
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
andplayer2
的Q
变量能够自动更新,game.Q
只要它发生变化即可。我怎样才能做到这一点?
按照Rawing的评论,我self.Q = self.player1.Q = self.player2.Q = {}
在中使用__init__
了Game
:
class Game:
def __init__(self, player1, player2):
self.player1 = player1
self.player2 = player2
self.Q = self.player1.Q = self.player2.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"
结果,player1.Q
现在{'some key': 'some value'}
无需手动“更新”即可产生收益。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句