导入类和NameError

时间:2013-02-12 17:22:10

标签: python oop nameerror

在这里发布完整的实际代码并不是很重要,所以我会尽力概括我的问题。 函数(让它命名为x)在代码的开头定义。 然后该类(具有方法z,并且z最终调用x)从单独的.py文件导入。该类的对象已创建。调用z后,我得到“全局名称'x'未定义”错误。 然后我想我将.py文件中的所有代码粘贴到一个文件中,将def(x)放在它上面,看看会发生什么。当然,它按预期工作。不要以前的方式得到问题(我更喜欢坚持),是不是几乎一样?

1 个答案:

答案 0 :(得分:2)

Globals是每个模块,函数在它们定义的模块中查找全局变量。

因此,在名为Foo的模块中定义的类bar需要访问名为spam的函数,它将在其自己的命名空间中查找该函数,因此在模块{{1 }}

如果函数要在导入的模块中查找全局变量,则必须重复导入您想要使用的任何函数的所有依赖项。这不切实际。

相关问题