Python-NameError:name';搜索固定装置';没有定义
我在这里做一个程序,我得到了错误。如何修复它,因为我已经定义了函数,但它说我没有Python-NameError:name';搜索固定装置';没有定义,python,Python,我在这里做一个程序,我得到了错误。如何修复它,因为我已经定义了函数,但它说我没有 Traceback (most recent call last): File "G:/Practice Program/Task3 Practice/Task3_Own_copy.py", line 19, in <module> menu() File "G:/Practice Program/Task3 Practice/Task3_Own_copy.
Traceback (most recent call last):
File "G:/Practice Program/Task3 Practice/Task3_Own_copy.py", line 19, in <module>
menu()
File "G:/Practice Program/Task3 Practice/Task3_Own_copy.py", line 9, in menu
search_fixture()
假设缩进如您所述是正确的,问题在于Python解释文件的方式。它在读取函数时定义函数。在您的例子中,它试图访问search_fixture()函数,但它还没有访问它,因此它没有定义
交换函数的顺序,您的问题就会得到解决。我试着复制和粘贴您的代码,重现了问题,移动了搜索夹具定义,使其位于菜单之前,并且成功了。假设缩进如您所述是正确的,问题在于Python解释文件的方式。它在读取函数时定义函数。在您的例子中,它试图访问search_fixture()函数,但它还没有访问它,因此它没有定义 交换函数的顺序,您的问题就会得到解决。我尝试复制和粘贴您的代码,重现问题,移动搜索夹具定义,使其位于菜单之前,并且工作正常。Python(和大多数其他语言)自上而下执行。如果您正在定义function(即调用另一个尚未定义的FunctionB),然后调用function,则您正在尝试间接调用尚未定义的FunctionB 这就是你正在做的:
def FunctionA():
FunctionB()
FunctionA()
def FunctionB():
print("inside of B")
FunctionB()
这将导致错误,因为从上到下,它在到达时不知道FunctionB()
是什么,因为它尚未定义
通常,单文件python程序将首先定义所有函数,然后调用它们
这就是你想要的:
def FunctionA():
FunctionB()
def FunctionB():
print("inside of B")
FunctionA()
FunctionB()
Python(和大多数其他语言)从上到下执行。如果您正在定义function(即调用另一个尚未定义的FunctionB),然后调用function,则您正在尝试间接调用尚未定义的FunctionB
这就是你正在做的:
def FunctionA():
FunctionB()
FunctionA()
def FunctionB():
print("inside of B")
FunctionB()
这将导致错误,因为从上到下,它在到达时不知道FunctionB()
是什么,因为它尚未定义
通常,单文件python程序将首先定义所有函数,然后调用它们
这就是你想要的:
def FunctionA():
FunctionB()
def FunctionB():
print("inside of B")
FunctionA()
FunctionB()
对于你的信息员来说,这两个函数都是一致的,但是这里的格式很奇怪。缩进可能是你问题的关键,所以请在你的计算机上设置一个格式。问题是
如果choice==“A”:在菜单()
中。在解释器点击该行时,search\u fixture
未定义。。。从上到下浏览代码。将来,如果您想发布代码,只需将整个内容复制/粘贴为一块,突出显示所有内容,然后点击CTRL
+k
或单击编辑器中的{}
按钮。它将为您排序格式。对于您的信息人员,这两个函数都在同一条线上,但这里的格式很奇怪。缩进可能是您的问题的关键,因此请在您的计算机上获得它时努力设置格式。问题是如果choice==“A”:中的菜单()
。在解释器点击该行时,search\u fixture
未定义。。。从上到下浏览代码。将来,如果您想发布代码,只需将整个内容复制/粘贴为一块,突出显示所有内容,然后点击CTRL
+k
或单击编辑器中的{}
按钮。它将为您排序格式。我很感激,但是,我需要问题提示first@Hayden然后你需要重构你的代码。没有其他方法可以合理地执行您想要执行的操作。如果search_fixture不需要再次调用菜单,您可以将对search_fixture()的调用保留在文件底部。仅移动函数定义。但是,如果您需要让他们互相调用(可能在搜索完成后打开菜单),那么最好将其转换为类。然后,方法的顺序无关紧要,它们可以互相调用。我很感激,但是,我需要问题提示first@Hayden然后你需要重构你的代码。没有其他方法可以合理地执行您想要执行的操作。如果search_fixture不需要再次调用菜单,您可以将对search_fixture()的调用保留在文件底部。仅移动函数定义。但是,如果您需要让他们互相调用(可能在搜索完成后打开菜单),那么最好将其转换为类。那么,方法的顺序就不重要了,它们可以互相调用。也可以用于将来的引用也可以用于将来的引用