为了账号安全,请及时绑定邮箱和手机立即绑定

导入在运行时构建的字典

导入在运行时构建的字典

千万里不及你 2022-07-05 19:00:50
我的代码结构如下: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,但是为此指定一个模块比让其他模块导入主模块更干净、更清晰。


查看完整回答
反对 回复 2022-07-05
?
12345678_0001

TA贡献1802条经验 获得超5个赞

做就是了

import main

并将其用作

main.dictionary

应该这样做!



查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号