2015-02-24 27 views
0

我正在设计一个在网格上玩的Python游戏。这个网格由一个列表列表表示 - 一个嵌套列表代表一行,该列表中的每个项目代表一个“方块”。Python类中打桩网格的秘密

实施例:

t1 = tictactoe('p', True) 
What size would you want your grid to be? 3 
t1.current_grid 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
t2 = tictactoe('p', True) 
What size would you want your grid to be? 3 
t2.current_grid # now watch what happens 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]] 
t1.current_grid # gets even weirder 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3], [4, 5, 6], [7, 8, 9]] 
我不使用全局变量

;我只使用类中的变量。任何人都可以告诉我为什么我的可选参数列表继续堆叠上一个实例调用类的列表?

class Tictactoe: 
     def __init__(self, p, interactive=False, current_grid=[]): 

然后,所有它的作用是向用户询问网格大小和追加名单上current_grid;我无法弄清楚为什么不同的实例调用互相堆叠起来。

回答