Python 使用参数从另一个函数调用局部变量,显示错误

Python 使用参数从另一个函数调用局部变量,显示错误,python,python-3.x,Python,Python 3.x,当我运行这个程序时,我得到了这个错误,如果我把board作为参数放入display\u board,然后用一个空列表调用它,就像display\u board([]) 错误: Traceback (most recent call last): File "C:\Users\withrajat\eclipse-workspace\LCO\tictactoe.py", line 31, in <module> player_input() File "C:\Users\

当我运行这个程序时,我得到了这个错误,如果我把board作为参数放入
display\u board
,然后用一个空列表调用它,就像
display\u board([])

错误:

Traceback (most recent call last):
  File "C:\Users\withrajat\eclipse-workspace\LCO\tictactoe.py", line 31, in <module>
    player_input()
  File "C:\Users\withrajat\eclipse-workspace\LCO\tictactoe.py", line 29, in player_input
    board.replace("O", marker)
NameError: name 'board' is not defined

我的问题是如何在另一个函数中调用该变量,请告诉我,如果我将该空列表作为参数传递,并删除display_board函数中的board变量,我该如何做。请帮助我,我是编程新手。

让我们看看您可疑的代码行

display\u board().board.更换(“O”,标记)

现在,这到底是做什么的?我们可以将这一行扩展为一些等效的代码,因为您跳过了几个主要步骤

printed_board = display_board()
printed_board.replace('O', marker)
根据上面的代码,
display\u-board
不会返回任何内容,因此如果要
print(printed\u-board)
您将看到
printed\u-board==None
None.board。replace('O',marker)
将抛出错误,因为
None
没有任何属性或功能


有几种方法可以解决这个问题,正如我在这里没有明确为您编写的注释中所描述的,因为这是调试中的一个很好的练习,但我肯定不会使用全局变量

你认为
显示板().board.replace(“O”,marker)
有什么作用?我想用X或O替换O项吧!功能
display\u-board
是否返回任何内容?否它不返回任何内容…如果
display\u-board
不返回任何内容。然后
display\u board()。board
将成为一个问题。你明白为什么吗?好的!我知道了,1。有必要把这一行打印出来吗?board=display\u board()还是我们可以直接做?虽然没有必要,但我鼓励新的编码人员做这件事,这样你就可以确切地看到/理解每一行在做什么。像这样复杂的行更难调试。我将“display_-board().board.replace(“O”,marker)”替换为“display_-board()[col_-guess-1][row_-guess-1]==marker print(display_-board())”,但它没有改变项目,为什么?
printed_board = display_board()
printed_board.replace('O', marker)