class GameState:
def __init__(self):
'''initializes the players turn'''
self._player_turn = 'BLACK'
def change_player_white(self):
self._player_turn = 'WHITE'
def p_move(self):
return self._player_turn
如果我打电话
project41.GameState().change_player_white()
print(project41.GameState().p_move())
它仍打印出' BLACK'
答案 0 :(得分:1)
每次致电project41.GameState()
时,您都会创建一个新 GameState
对象。相反,你可能想要的是:
my_game = project41.GameState()
my_game.change_player_white()
print(my_game.p_move())
如果您真的想要一个由您的课程的所有实例共享的变量,请参阅文档中的Class and Instance Variables部分。
答案 1 :(得分:1)
每次调用GameState()
都会创建一个新实例。您创建了一个实例,将播放器更改为白色,然后丢弃该播放器并在以下行中创建一个新播放器。试试这个:
state = project41.GameState()
state.change_player_white()
print(state.p_move())
顺便提一下,您的_player_turn
不是类属性,而是实例属性。
答案 2 :(得分:0)
您正在为每个调用创建一个GameState对象的新实例。