这是我的代码:
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?
答案 0 :(得分:9)
除非您已经定义了函数,否则无法调用函数。将def createDirs():
块移动到文件顶部,位于导入下方。
某些语言允许您在定义函数之前使用它们。例如,javascript称之为“吊装”。但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()
即使在第7行调用createDirs()
并且在第9行定义了它,但这不是问题,因为def createDirs
在第{12}行之前执行{。}}。