【发布时间】:2009-03-27 15:26:56
【问题描述】:
我最喜欢 python 的一个特性是你可以用 python 编写易于阅读和理解的配置文件。如果你给自己设置一些界限,你可以非常自信地让非 Python 爱好者确切地知道你的意思,并且完全有能力重新配置你的程序。
我的问题是,这些界限到底是什么?我自己的启发式方法是
- 避免流量控制。没有函数、循环或条件。这些不会出现在文本配置文件中,人们也不希望能够理解它们。一般来说,语句的执行顺序可能并不重要。
- 坚持字面赋值。在对象上调用的方法和函数更难思考。任何隐含的东西都会变得一团糟。如果您的参数必须发生复杂的事情,请更改它们的解释方式。
- 语言关键字和错误处理一目了然。
我想我问这个问题是因为我在 Django 配置文件中遇到了一种情况,打破这些规则似乎很有用。我碰巧喜欢它,但我觉得有点内疚。基本上,我的项目是通过 svn checkouts 部署到几个不同的服务器上,这些服务器的配置并不相同(例如,有些会共享一个数据库,有些则不会)。所以,我在最后抛出一个钩子:
try:
from settings_overrides import *
LOCALIZED = True
except ImportError:
LOCALIZED = False
settings_overrides 在 python 路径上但在工作副本之外。对于这个例子,或者一般的 python 配置边界,你怎么看?
【问题讨论】:
-
"改变他们的解释方式" -> "改变他们的解释方式"。我知道这没关系,但这是一个小问题......