【发布时间】:2014-10-10 21:55:41
【问题描述】:
我是 python 新手,所以我做了一些挖掘,据我了解,一个类的成员变量将在该类的所有实例中更新,无论你用哪个实例修改它。但是,实例变量似乎不会发生同样的情况,但是当我运行这段代码时......
class Game(object):
def__init__(self, active_turn, board):
self.active_turn = active_turn
self.board = board
game = Game(1,[1,0,0,0,0,0,0,0,0])
move = 3
print(game.board, "\n")
possible_game = Game(game.active_turn*-1,game.board)
print(game.board)
print(possible_game.board, "\n")
possible_game.board[move] = possible_game.active_turn
print(game.board)
print(possible_game.board, "\n")
game.board[move+1] = game.active_turn
print(game.board)
print(possible_game.board)
我得到这个输出...
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, -1, 0, 0, 0, 0, 0]
[1, 0, 0, -1, 0, 0, 0, 0, 0]
[1, 0, 0, -1, 1, 0, 0, 0, 0]
[1, 0, 0, -1, 1, 0, 0, 0, 0]
board 变量在 Game 类的每个实例中都在更新,即使我只在其中一个实例中更改它。有谁知道为什么会发生这种情况以及我可以做些什么来避免它?
谢谢, 尼克
【问题讨论】:
标签: python python-3.x linked-list instance member