为什么我总是收到 'method' 类型的参数不可迭代?

Why do I keep getting argument of type 'method' is not iterable?

我正在尝试制作一个国际象棋程序,但无法通过不断返回错误的部分。我已经检查了代码,但找不到它有什么问题。它一直说“'method' 类型的参数不可迭代”。网上说是括号错误,可是我怎么也找不到。

if len(userClick)==2: # if its player click number 2
    move = chessEngine.Move(userClick[0],userClick[1],SoG.board)
    print(move.chessNotation())
    if move in legalMoves: # this is where the error occurs
        SoG.makingMove(move)
        moveMade = True
    selectedSquare = () # reset square selected
    userClick = [] # reset user clicks

我这里有一些其他代码,

def legalMoves(self): # possible moves
    return self.possibleMoves()

def possibleMoves(self):
    moves = [] #Move((6,4),(4,4),self.board)
    for r in range(len(self.board)): # number of rows
        for c in range(len(self.board[r])): # number of columns in a row
            colourOfTurn = self.board[r][c][0]
            if (colourOfTurn == 'b' and not self.whiteMove) and (colourOfTurn == 'w' and self.whiteMove):
                piece = self.board[r][c][1]
                if piece == 'P': # pawns
                    self.pawnMoves(r,c,moves)
                elif piece == 'R': # rooks
                    self.rookMoves(r,c,moves)
                #elif piece == 'N': # knights
                 #   self.knightMoves(r,c,moves)
                #elif piece == 'B': # bishop
                 #   self.bishopMoves(r,c,moves)
                #elif piece == 'Q': # queen
                 #   self.queenMoves(r,c,moves)
                #elif piece == 'K': # king
                 #   self.kingMoves(r,c,moves)
    return moves

你必须用括号调用 legalMoves,像这样:

if move in legalMoves():