我对Python还不是很熟悉,对于语法和工作方式也不是很了解。可能是我理解有误,但从我的代码来看,这行代码:
largeBoard = [[Board() for i in range(3)] for j in range(3)]
创建了9个对同一Board对象的引用,而不是9个不同的Board对象。我应该如何创建9个不同的Board对象呢?
当我运行时:
largeBoard = [[Board() for i in range(3)] for j in range(3)]
x_or_o = 'x'
largeBoard[1][0].board[0][0] = 'g' # each Board has a board inside that is a list
for i in range(3):
for j in range(3):
for k in range(3):
for l in range(3):
print largeBoard[i][j].board[k][l]
我看到有多个 'g',这让我认为它们都是指向同一个对象的引用。
Board
对象。尝试在largeBoard
中打印每个对象的id
。 - Rohit JainBoard
类的代码...也许它是基于单例模式构建的,每次调用它的构造函数时都会返回(一个引用到)同一个对象... - twalbergboard
中意外使用了类属性,而不是在__init__
方法中设置self.board
。 - user2357112