用python变量做为配置文件格式的利与弊

用Python变量做为配置文件格式的利与弊

配置文件的格式很是多,有ini、xml、yaml等等,各有优势,适合不一样的场景。然而,因为Python语言的解释性和动态性,给Python程序员带来了另外一个选择:直接用Python变量做为配置文件格式,相信Python程序员更倾向于这种形式。可是,在享受便利的同时,不能忽略当中存在的不足。python

用Python变量做为配置文件格式

相信大部分Python程序员都不会陌生,把配置直接用变量的形式写到一个模块中,在须要读取配置的地方,直接import模块就能获得配置变量。这得益于:程序员

  1. Python是解释性语言,无需编译,修改后的源文件直接能够运行;
  2. Python优雅的语法,直观的变量定义,灵活的数据类型。

配置文件示例:编程

<!-- lang: python -->
# config.py
listen_port = 4444
use_epoll = True
...

在读取配置的地方:学习

<!-- lang: python -->
import config
port_num = config.listen_port
if config.use_epoll:
    ...

优势

直接用python变量做为配置文件格式的优势是显然的:code

  1. 不用任何parser(解释器)来解释配置文件。Python解释器自己就担当了parser的角色。
  2. 使用天然、方便,直接可用,和其余变量的使用没有任何区别。
  3. 学习成本低,不须要学习其余配置文件的格式和语法。

如此明显的优点,相信用Python编程的时候,如无特殊状况,一定会选用这种形式的配置文件。xml

接下来,咱们说说**“特殊状况”**,什么状况下应该避免使用Python变量做为配置文件。编译

缺点

方便之处在于不用parser,缺点也在于不用parser。import

一般状况,配置文件是负责程序负责。如今,程序读配置文件很是方便,人写配置文件也很是方便。变量

可是会不会存在这样的状况,配置文件既要让写,也要让代码写。显然,这种状况是存在的,好比:程序的配置能够直接改配置文件,同时也提供了一套界面让用户在界面上修改配置。在界面上修改的配置,最终也是反映到配置文件中,这就要求代码修改配置文件了。配置

那么,咱们得到配置文件变量的值容易,把修改后的值写回去容易吗?

  • 容易:按照语法格式,变量 = ,写到配置文件便可。
  • 不容易:因为没有任何parser的支持,咱们咱们只知道有这个变量,知道这个变量的值,可是,不能定位到原来配置文件中变量的位置,这就限制了咱们没法在原来的位置上修改,只能从新生成整个配置文件。

从新生成配置文件会带来什么问题?

  • 注释丢失,咱们无法得到配置文件的注释,也就没法从新生成,全部注释都将丢失。虽然不影响功能,可是用户下次想要手动修改的时候,没有了先前的注释很是不方便。
  • 变量顺序混乱,在Python解释器看来,配置文件的变量是没有顺序,可是现实中,用户对配置变量的理解是功能相近分红“一组”,根据做用的大小、前后排出“顺序”。顺序混乱了,用户想要手动修改的时候将会很是困惑。

结论

是否应该使用Python变量做为配置文件格式?取决于程序的使用场景。It depends.

相关文章
相关标签/搜索