在另一个modu中定义的导入模块

2024-10-04 03:23:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下设置。第一个文件(配置.py)定义一个路径,告诉file1.py要导入哪个模块。在

#file:config.py
moduleToBeImported="/here/is/some/path/file2.py"
import file1

然后在file1.py中,导入在中定义的模块配置.py在

^{pr2}$

是否可以传递从导入的变量moduleTo配置.py到file1.py?在

在当前设置中,我得到预期的错误:NameError:未定义名称“moduleToBeImported”


Tags: 模块文件pathpyimport路径confighere
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:42

简短回答


长时间的回答-也许,你可以。而且,你不应该。循环导入将导致import循环。这很糟糕。在

例如,假设您在file1.py中导入了config.py。一旦运行file1.py并调用config.pyconfig.py中的代码就和其他任何python文件一样运行。此时,您将尝试从file1.py导入file1.py。在

Python可能会检测到,也可能不会在它破坏系统之前检测到它。在

一般来说,循环导入是一种非常糟糕的编码实践。在


您可以做什么-您的config.py应该包含最少的可运行代码。相反,将所有配置变量、设置和通用实用程序方法保存在其中。简而言之,如果file1.py包含关键代码,则不应将其导入config.py。但是,您可以在file1.py中导入config.py。在

更多阅读内容:Python circular importing?

相关问题 更多 >