首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用全局字典进行设置:好的或坏的约定

使用全局字典进行设置:好的或坏的约定
EN

Software Engineering用户
提问于 2022-11-04 09:39:40
回答 1查看 523关注 0票数 0

我正在给一个从json文件中获取设置的函数写评论,我发现我的Github副驾驶仪表明这样做不是个好主意。我查看了为什么全局变量是邪恶的?[封闭],看到了对“坏”或“邪恶”的不同看法,这取决于具体情况。在这种情况下,使用全局字典对象进行设置是一个很好的调用吗?

代码语言:javascript
复制
# tools.py
def get_settings() -> dict:
    # Having empty global variable for settings is necessary to check if settings is loaded    global settings
    if 'settings' in globals():
        return settings

    if os.path.isfile('settings.json'):
        with open('settings.json', 'r') as f:
            settings = json.load(f)
            return json.load(f)
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2022-11-04 09:51:56

当您尝试使用这些设置时,特别是当您尝试测试使用这些设置的代码时,问题就会出现。突然间,所有的代码都围绕着这个变量耦合在一起。如果您想将代码分成不同的模块,就会变得更加不方便。

它通常更易于管理,如果稍微冗长的话,可以:

  • 将设置保存在main()中的变量中,并在需要时传递它们
  • 或者使用依赖注入框架来提供它们。

( DI框架本身就有全局,但是提供了更多的工具来管理它们)

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/442080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档