类方法之间的错误,Python编程
将类方法之间的错误,Python编程,python,Python,将computerBoard=self.getComputerBoard(self.newBoard)添加到我的def computerMove中不起作用。它只告诉我: computerBoard[x][y] = self.board[x][y] TypeError:“非类型”对象不可下标 这可能与我在def getComputerBoard中定义computerboard有关,但我不明白为什么 class BoardHandler: def __init__ (self): sel
computerBoard=self.getComputerBoard(self.newBoard)
添加到我的def computerMove
中不起作用。它只告诉我:
computerBoard[x][y] = self.board[x][y]
TypeError:“非类型”对象不可下标
这可能与我在def getComputerBoard
中定义computerboard有关,但我不明白为什么
class BoardHandler:
def __init__ (self):
self.board = None
self.size = self.askSize()
self.newBoard()
def newBoard(self):
self.board = []
for i in range(self.size):
self.board.append([' '] * self.size)
newBoard
不返回新板,它只是初始化self.board
。所以
computerBoard = self.newBoard()
将computerBoard
设置为None
,并清除self.board
中的所有内容
您应该更改newBoard
,使其返回板,而不是更新self
def newBoard(self):
board = []
for i in range(self.size):
board.append([' '] * self.size)
return board
或者更简单地说:
def newBoar(self):
return [[' '] * self.size for i in range(self.size)]
然后更改\uuuu init\uuuu
方法以如下方式使用它:
def __init__(self):
self.size = self.askSize()
self.board = self.newBoard()
self.board在哪里定义?将整个类放在另一个
self.board[x]
或computerBoard[x]中
未设置为列表/数组。newBoard
的getComputerBoard
参数是什么?\uuuuu init\uuuuu
方法从未将self.board
设置为一个板。它告诉我“返回板名错误:未定义名称”board“嗯?在前面的board=[]