关于python我最喜欢的一个功能是你可以在python中编写非常易于理解的配置文件.如果你对自己设置了一些界限,你可以非常自信非pythonistas会确切地知道你的意思,并且完全有能力重新配置你的程序.
我的问题是,这些界限究竟是什么?我个人的启发式是
避免流量控制.没有函数,循环或条件.那些不会在文本配置文件中,人们不希望理解它们.通常,可能与语句执行的顺序无关.
坚持文字作业.调用对象的方法和函数更难以思考.隐含的任何东西都会变得一团糟.如果您的参数必须发生一些复杂的事情,请更改它们的解释方式.
语言关键字和错误处理都是正确的.
我想我问这个因为我遇到了我的Django配置文件的情况,它似乎有助于打破这些规则.我碰巧喜欢它,但我感到有点内疚.基本上,我的项目通过svn checkout部署到几个不同的服务器,这些服务器不会全部配置相同(有些将共享一个数据库,有些将不会,例如).所以,我在最后抛出一个钩子:
try: from settings_overrides import * LOCALIZED = True except ImportError: LOCALIZED = False
其中settings_overrides位于python路径上但在工作副本之外.你怎么看待这个例子,或者一般的python配置边界?
有一个Django维基页面,它完全解决了你要问的问题. http://code.djangoproject.com/wiki/SplitSettings
不要重新发明轮子.使用configparser和INI文件.Python文件很容易被不懂Python的人破解.