更具体地说,假设我有许多 .py 文件,其中 main.py 导入诸如 os、pygame、math 和我所有其他 .py 文件、mymodule01.py 等的东西。
我的问题是,每当 main.py 调用我的一个 .py 文件并且该文件包含类似 os.listdir() 的内容时,我总是收到一条错误消息,提示“未定义 os”之类的内容。
我应该只在我编写的每个 .py 文件中导入所有必需的模块,还是有更好的方法,比如每个文件都可以识别的集中导入?特别是对于 pygame,这会非常困惑,因为我必须在每个文件中初始化 pygame 才能使用它的功能,更不用说如果我想在屏幕上显示一些东西。
python 模块和包文档没有太大帮助,或者我真的很慢,还考虑到在遵循文档之后我在添加例如后不断收到未找到的错误在包含文件夹的 init.py 文件中导入 mymodule01.py。
最佳答案
我想您的印象可能是“导入”在其他语言中的作用类似于“包含”。它没有。
每个模块对象都是一个单例。不存在性能下降或多次初始化模块代码的危险。
此外,每个文件都有自己的范围,因此在您的示例中,如果您在 main.py 中定义 foo = 1
,foo
将不会在 我的模块01.py
。你必须 import main; main.foo
来查看它(不是你应该看到的)
你提示,但这是一个比 include
关于python - 导入仅在一个文件中使用的 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370487/