繁体   English   中英

TypeError:“ NoneType”对象不可调用,但对象不是nonetype

[英]TypeError: 'NoneType' object is not callable but object is not nonetype

def winner(board):
    WAYS_TOWIN = ((0, 1, 2),
                  (3, 4, 5),
                  (6, 7, 8),
                  (0, 4, 8),
                  (2, 4, 6),
                  (0, 3, 6),
                  (1, 4, 7),
                  (2, 5, 8))
    for row in WAYS_TOWIN:
        if board[row[0]] == board[row[1]] == board[row[2]] != " ":
            winner = board[row[0]]
            return winner
    if " " not in board:
            return TIE
    else:
        return None



#Main
instructions()
human = input("Enter your name: "); print("\n")
pieces = who_first(human, computer); print("\n")#pieces becomes a list with human piece first and computer piece second
board = new_board(); print("\n")
winner = winner(board)



while winner == None and winner != TIE:
    if turn == pieces[0]:#if human is first
        winner = winner(board)

当我第一次运行Winner函数时,它没有返回到Winner变量,也没有错误。 但是当我第二次运行它时,它给我TypeError:'NoneType'对象不可调用。 板子是带有[“”] * 9的列表,我不明白为什么第二次调用板子是无类型对象。

第一次运行winner = winner(board) Winner变为None因此在第二次调用时未调用该函数,但因此None Error。 更改名称将解决问题,不建议使用相同的变量名和函数名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM