我有以下设置。第一个文件(配置.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:
简短回答—否
长时间的回答-也许,你可以。而且不,你不应该。循环导入将导致import循环。这很糟糕。在
例如,假设您在
file1.py
中导入了config.py
。一旦运行file1.py
并调用config.py
,config.py
中的代码就和其他任何python文件一样运行。此时,您将尝试从file1.py
导入file1.py
。在Python可能会检测到,也可能不会在它破坏系统之前检测到它。在
一般来说,循环导入是一种非常糟糕的编码实践。在
您可以做什么-您的
config.py
应该包含最少的可运行代码。相反,将所有配置变量、设置和通用实用程序方法保存在其中。简而言之,如果file1.py
包含关键代码,则不应将其导入config.py
。但是,您可以在file1.py
中导入config.py
。在更多阅读内容:Python circular importing?
相关问题 更多 >
编程相关推荐