Python 类属性不会更改

Python 类属性不会更改,python,Python,如果我打电话 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_tu

如果我打电话

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时,它仍然会打印出“黑色”

。你正在创建一个新的GameState对象。相反,您可能想要的是:

project41.GameState().change_player_white()
print(project41.GameState().p_move())
如果您真的想要一个由类的所有实例共享的变量,请参阅文档中的部分。

每次调用GameState都会创建一个新实例。您创建了一个实例,将播放机更改为白色,然后丢弃该播放机,并在下一行创建了一个新的播放机。试试这个:

my_game = project41.GameState()
my_game.change_player_white()

print(my_game.p_move())

顺便说一下,你的_player_回合不是一个类属性,但是一个实例属性。

你每次调用都会创建一个新的游戏状态对象实例。

加上一个:我想象你的用户名就像风中的灰尘一样。类属性和实例属性之间有什么区别?@dustinyourface:See和许多其他可以通过谷歌搜索找到的资源。
state = project41.GameState()
state.change_player_white()
print(state.p_move())