猿问

导入在运行时构建的字典

我的代码结构如下:


main.py

utils.py

blah.py

该main模块使用 argparse 读取配置 yaml 文件的位置,然后将其作为字典加载。utils有没有办法blah导入这个内置的字典?


编辑:我尝试使用from main import config(配置是我构建的字典)但我得到了ImportError: cannot import name 'config' from 'main'


Edit2:主要导入其他 2 个模块 - 很抱歉遗漏了这个非常重要的细节


千万里不及你
浏览 139回答 2
2回答

qq_遁去的一_1

我建议制作另一个文件,例如globals.py. 将其导入main、utils和blah,并在其中设置属性以供其他模块调用。例如:globals.pyconfigs = {}main.pyimport .globals...user_configs = yaml.load('user/entered/path.yml')globals.configs.update(user_configs)  # modifies the global `configs` variableutils.pyimport .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,但是为此指定一个模块比让其他模块导入主模块更干净、更清晰。

12345678_0001

做就是了import main并将其用作main.dictionary应该这样做!
随时随地看视频慕课网APP

相关分类

Python
我要回答