Python 中有没有类似于 JavaBean 的一个属性的集合

2016-12-23 18:28:40 +08:00
 alangz

Java 后端,最近在写一个 Python 的小程序。有个需求是,这个程序有很多配置,因此我用了一个 YAML 文件来做配置。现在是通过 Python 读取这个文件转成一个 dict ,再使用的时候通过 key 来拿到配置。

这样就会有一个问题,程序中到处都在用这个 dict ,如果某天某个 key 变化了,就需要找到使用这个 dict 的地方一个一个修改。这样后期也非常不好维护。

现在的想法是有没有类似一个 Java 中的 Bean 一样,我把这个 dict 转换成一个对象,这个对象都是属性的集合,这样可以通过对象获取对应的属性,后面也好维护。

在 python 里面属性的集合怎么实现,或者说在 python 里有没有更好的实现方式。

4675 次点击
所在节点    程序员
3 条回复
kinghui
2016-12-23 18:35:29 +08:00
直接拿 Python 源文件作为配置文件不就行了, 至于配置的项用类属性还是直接用常量就看你自己的选择了, 我认为 Java 这种编译行语言拿 XML/YAML 之类的文本作为配置文件无非就是为了更改配置还需要重新编译, 但是 Python 完全没必要.
KentY
2016-12-23 18:38:50 +08:00
python 你也可以建立一个 class 呀, 只不过你转成一个 dict 变成转成一个那个 class 的 object 就好了.

另外, 即使你那个 dict 到处被读取,使用, 你也不能到处用 hardcoded 的 key name 吧, 应该弄常量代表 key name 字符串, 然后用那个常量读取. 这样你改 key, 只需修改一处.
fwrq41251
2016-12-23 19:01:54 +08:00
你需要静态语言

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

https://www.v2ex.com/t/329757

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

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

© 2021 V2EX