错误是什么意思,“未定义newDirectory”?我确实定义了它

时间:2019-07-15 13:47:45

标签: python-3.x function-call

我正在编写一个使日常流程自动化的工具,尽管执行代码时会提示我要使用哪个选项,所以我将选择选项二,然后输入目录路径,然后出现NameError尽管已定义“ newDirectory”,但未定义。

我尝试在不同的功能块中调用该函数,例如主函数和预定义的函数“ def newdirectory(directPath)”。无论在哪里调用该函数,我总是会遇到相同的错误。

if user_response == "1":
    def newDirectory(directPath):
        if os.path.exists(directPath) == True:
            print ("The directory ", directPath, " already exists")
        else:
            os.mkdir(directPath)
            if os.path.getsize(directPath) > 0:
                print ("The directory: ", directPath, " has been successfully created")
            else:
                print (directPath, " has not been created")

def main():
    directPath = input("Enter the directory to be created: ")
    newDirectory(directPath)

我希望能够在我的工具“制作/删除目录”中执行功能而不会出错。

1 个答案:

答案 0 :(得分:1)

您定义函数newDirectory,但仅在运行if语句的情况下。如果newDirectory不是值user_response之外的其他函数,则永远不会定义函数"1"-永远不要将其放入命名空间中。您现在得到的NameError是python对本地命名空间中不存在的内容的标准响应,因为它从未定义过。

通常,您不要将函数声明放在条件语句中-简单地定义函数并不意味着它一定会执行,最好将调用放在条件语句中,而不是放在条件语句中功能本身是有条件的,正是为了避免这种错误。