Python函数导入级联 - NameError

时间:2014-07-07 15:26:34

标签: python function import module nameerror

我认为我已经就Q& A的全球名称'功能'进行了咨询。没有定义,仍然无法解决这个问题。

我的模块和功能组织的摘要是:

Functions_File.py
    def cat_by_date():
        from datetime import datetime
        # addt'l code

Execution_File.py
    def assign_rate():
        from Functions_File import cat_by_date
        # addt'l code

当我执行assign_rate时,它返回NameError全局名称' datetime'未在cat_by_date中调用它的第一行定义。我可以单独导入cat_by_date并成功使用它。所以问题必须是函数import cascade的结果。在Functions_File的顶部导入日期时间没有意义。在assign_rate的定义中导入datetime也没有意义。这些是已经讨论过的类似问题的解决方案。

1 个答案:

答案 0 :(得分:0)

cat_by_date中的第一个导入是该特定函数的本地导入。同一文件中的其他函数不会看到日期时间,导入或使用cat_by_date的函数也不会看到日期时间。这就是本地变量在函数末尾的范围。

你可能想重新考虑你正在做什么,因为Python在vm时处理包导入。这意味着每次调用函数时都必须运行包查找代码,这可能不是您想要的。