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

每个模块都要读取各自的 ini 文件初始化一大堆变量,有没有办法把它抽象出来?

  •  
  •   whx20202 · 2017-03-31 11:44:41 +08:00 · 1665 次点击
    这是一个创建于 2798 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前能想到的办法是: 在每个模块里面 import 一个 utils 方法,然后调用,比如 set_vars(module_name) 方法外面统一传入模块名,方法里面根据模块名读取 ini 然后把变量值赋给模块下面的变量

    感觉还是太丑陋了,想看看各位有没有好一点的建议

    4 条回复    2017-04-01 10:02:51 +08:00
    huangxb7818
        1
    huangxb7818  
       2017-03-31 17:06:07 +08:00
    configParser 不是有现成的模块吗
    ijustdo
        2
    ijustdo  
       2017-03-31 17:13:46 +08:00
    我以前的做法是 建一张表 呵呵 config_key, config_value, config_type 三个字段足以 当然你还可以再加 add_time, last_update_time 之类 如果是客户段 搞个 sqlite 多 happy 下次配置修改或者升级 直接拷贝

    或者是链接远程的 一个接口 读取表里所有数据
    owt5008137
        3
    owt5008137  
       2017-04-01 09:10:18 +08:00 via Android
    没看懂问题是啥?
    如果是公共的配置那不是应该抽象出公共配置管理器来读么,然后每个模块里包含共有配置和私有配置。
    ini 里不是有 section 可以用来区分模块么。
    whx20202
        4
    whx20202  
    OP
       2017-04-01 10:02:51 +08:00
    @owt5008137 恩 就是我觉得太恶心了

    我给你举个例子:
    client.py

    client_cp = configParser("client.ini")
    var_1 = client_cp.get("var_1")
    var_2 = client_cp.get("var_2")
    ..................
    var_50 = client_cp.get("var_50")




    server.py:
    ..............
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1128 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:04 · PVG 03:04 · LAX 11:04 · JFK 14:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.