py 程序你们喜欢一个 config 传来传去吗

2025 年 7 月 3 日
 Suger828
看到有很多喜欢一个 config 到处传,每个地方都有可能改变 config 的结构和内容,读代码噩梦
2513 次点击
所在节点    程序员
10 条回复
Romic
2025 年 7 月 3 日
哈哈哈 单一入口 python 是不存在这个逻辑的。
r6cb
2025 年 7 月 3 日
启动的时候将.env 文件中的内容放到环境变量,后面哪里要用直接读环境变量,耦合低,而且增删配置项都很方便
skiy
2025 年 7 月 3 日
哈哈。有其它解决办法吗?连 AI 都是这么给代码的。
w568w
2025 年 7 月 3 日
这个是设计问题,因为 Python 本来就是快工出糙活的语言,讲究一个快速迭代、原型验证。

你说的这种方式在 AI 相关项目中最常见,因为一开始设计的时候没有想清楚需要哪些配置(这一阶段也没有必要考虑,因为根本不知道会不会有用户),后面需求随着用户量一起复杂起来,本着最小修改的倾向,自然就会开始在上下文对象上挖洞,添加各种可变属性或者更复杂的机制。直到最后阶段把 config 变成巨型克苏鲁,不得不重构。

所以,你的问题不是 Python 问题,是工程学问题。再往大了说,先积累后清扫是人类思维的惯性。
cnt2ex
2025 年 7 月 4 日
只要把 config 的初始化集中在一个地方,初始化后就不要修改,一个 config 到处传我感觉问题没多大。这样,很多时候还方便加新的键值对,而不需要一个一个方法/函数的改签名。

但如果把 config 当返回值使用,代码随处在修改 config 的值,然后再到处乱传就恶心了。这种代码读起来简直要命,一般读一遍下来根本不知道哪里传来的值。
cquan
2025 年 7 月 4 日
我用.env
Rorysky
2025 年 7 月 4 日
搞成全局的
Suger828
2025 年 7 月 4 日
@cquan 这个 config 不是配置文件,相当于一个上下文,什么地方都会用,什么地方都能改变内容和结构
CodingIran
2025 年 7 月 4 日
不太懂 py ,是不是其他语言里的全局变量?
hmxxmh
2025 年 7 月 4 日
@r6cb 我在想这种方式是不是不安全,环境变量外面 1 被人改了怎么办,还是说是程序启动的时候会把环境变量加载到内存中

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1142846

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX