Python的Buildout配置文件允许我们通过允许称为variable substitution的特殊语法(格式为${SECTION:OPTION}
这是一个使我们避免重复单词experiment
的示例:
[context]
name = experiment
[db]
server = ${context:name}
是否可以使用替代来代替 option 本身?
例如:
[soures]
${context:name} = https://git.com/${context:name}.git
答案 0 :(得分:1)
否,不支持键中的变量扩展;该功能实际上被命名为value substitions,以使其清晰可见,语法仅适用于值:
在配置中提供值时,可以使用以下语法包括来自其他选项的值:
${SECTION:OPTION}
options syntax还明确排除了使替换成为可能的字符:
通过选项名称,后跟等号和值来指定选项:
parts = py
选项名称中可以包含空格,方括号,花括号,等号或冒号之外的其他任何字符
short-hand <part-dependencies>
syntax中有例外。
因此,最后,当variable substitutions are applied in buildout时,代码仅在值中寻找语法的${
部分:
# force substitutions
for k, v in sorted(self._raw.items()):
if '${' in v:
self._dosub(k, v)