V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alangz
V2EX  ›  程序员

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

  •  
  •   alangz ·
    xyalan · 2016-12-23 18:28:40 +08:00 · 4659 次点击
    这是一个创建于 2701 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    另外, 即使你那个 dict 到处被读取,使用, 你也不能到处用 hardcoded 的 key name 吧, 应该弄常量代表 key name 字符串, 然后用那个常量读取. 这样你改 key, 只需修改一处.
    fwrq41251
        3
    fwrq41251  
       2016-12-23 19:01:54 +08:00 via Android
    你需要静态语言
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3704 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:02 · PVG 13:02 · LAX 22:02 · JFK 01:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.