我的代码结构如下:main.pyutils.pyblah.py该main模块使用 argparse 读取配置 yaml 文件的位置,然后将其作为字典加载。utils有没有办法blah导入这个内置的字典?编辑:我尝试使用from main import config(配置是我构建的字典)但我得到了ImportError: cannot import name 'config' from 'main'Edit2:主要导入其他 2 个模块 - 很抱歉遗漏了这个非常重要的细节
2 回答
qq_遁去的一_1
TA贡献1725条经验 获得超8个赞
我建议制作另一个文件,例如globals.py. 将其导入main、utils和blah,并在其中设置属性以供其他模块调用。例如:
globals.py
configs = {}
main.py
import .globals
...
user_configs = yaml.load('user/entered/path.yml')
globals.configs.update(user_configs) # modifies the global `configs` variable
utils.py
import .globals
...
# need to use one of the configs for something:
try:
relevant_config = globals.configs['relevant_config']
except KeyError:
print("User did not input the config field 'relevant_config'")
所有模块都将能够看到相同的globals实例,从而允许您在整个程序中使用有效的全局变量。
您可以简单地将其保存configs为 gobal 变量,main.py并拥有utils.py和blah.py导入.main,但是为此指定一个模块比让其他模块导入主模块更干净、更清晰。
添加回答
举报
0/150
提交
取消
