将代码放在python配置文件中是否礼貌?

Dav*_*ger 9 python django

关于python我最喜欢的一个功能是你可以在python中编写非常易于理解的配置文件.如果你对自己设置了一些界限,你可以非常自信非pythonistas会确切地知道你的意思,并且完全有能力重新配置你的程序.

我的问题是,这些界限究竟是什么?我个人的启发式是

  1. 避免流量控制.没有函数,循环或条件.那些不会在文本配置文件中,人们不希望理解它们.通常,可能与语句执行的顺序无关.
  2. 坚持文字作业.调用对象的方法和函数更难以思考.隐含的任何东西都会变得一团糟.如果您的参数必须发生一些复杂的事情,请更改它们的解释方式.
  3. 语言关键字和错误处理都是正确的.

我想我问这个因为我遇到了我的Django配置文件的情况,它似乎有助于打破这些规则.我碰巧喜欢它,但我感到有点内疚.基本上,我的项目通过svn checkout部署到几个不同的服务器,这些服务器不会全部配置相同(有些将共享一个数据库,有些将不会,例如).所以,我在最后抛出一个钩子:

try:
    from settings_overrides import *
    LOCALIZED = True
except ImportError:
    LOCALIZED = False
Run Code Online (Sandbox Code Playgroud)

其中settings_overrides位于python路径上但在工作副本之外.你怎么看待这个例子,或者一般的python配置边界?

var*_*tec 11

有一个Django维基页面,它完全解决了你要问的问题. http://code.djangoproject.com/wiki/SplitSettings

不要重新发明轮子.使用configparser和INI文件.Python文件很容易被不懂Python的人破解.