为什么在尝试调用我的函数时会出现 NameError?
Why am I getting a NameError when I try to call my function?
这是我的代码:
import os
if os.path.exists(r'C:\Genisis_AI'):
print("Main File path exists! Continuing with startup")
else:
createDirs()
def createDirs():
os.makedirs(r'C:\Genisis_AI\memories')
当我执行这个时,它抛出一个错误:
File "foo.py", line 6, in <module>
createDirs()
NameError: name 'createDirs' is not defined
我确定这不是拼写错误,也没有拼错函数名称,那么为什么我会收到 NameError?
你不能调用一个函数,除非你已经定义了它。将 def createDirs():
块移至文件顶部,导入下方。
有些语言允许您在定义函数之前先使用它们。例如,javascript 称此为 "hoisting"。但是 Python 不是其中一种语言。
请注意,允许在高于创建函数的行的行中引用函数,只要按时间顺序定义发生在使用之前。例如,这是可以接受的:
import os
def doStuff():
if os.path.exists(r'C:\Genisis_AI'):
print("Main File path exists! Continuing with startup")
else:
createDirs()
def createDirs():
os.makedirs(r'C:\Genisis_AI\memories')
doStuff()
即使 createDirs()
在第 7 行调用并在第 9 行定义,这也不是问题,因为 def createDirs
在 doStuff()
在第 12 行执行之前执行。
这是我的代码:
import os
if os.path.exists(r'C:\Genisis_AI'):
print("Main File path exists! Continuing with startup")
else:
createDirs()
def createDirs():
os.makedirs(r'C:\Genisis_AI\memories')
当我执行这个时,它抛出一个错误:
File "foo.py", line 6, in <module>
createDirs()
NameError: name 'createDirs' is not defined
我确定这不是拼写错误,也没有拼错函数名称,那么为什么我会收到 NameError?
你不能调用一个函数,除非你已经定义了它。将 def createDirs():
块移至文件顶部,导入下方。
有些语言允许您在定义函数之前先使用它们。例如,javascript 称此为 "hoisting"。但是 Python 不是其中一种语言。
请注意,允许在高于创建函数的行的行中引用函数,只要按时间顺序定义发生在使用之前。例如,这是可以接受的:
import os
def doStuff():
if os.path.exists(r'C:\Genisis_AI'):
print("Main File path exists! Continuing with startup")
else:
createDirs()
def createDirs():
os.makedirs(r'C:\Genisis_AI\memories')
doStuff()
即使 createDirs()
在第 7 行调用并在第 9 行定义,这也不是问题,因为 def createDirs
在 doStuff()
在第 12 行执行之前执行。