当变量为uns时,Python的字符串模板会更改括号

2024-04-24 12:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有Python代码,它试图使用特殊语法$[VARIABLE](注意方括号)和string.template.safe_替代(). 这是很好的工作,但有一个例外是,当引用未定义的变量时,而不是将引用作为safe_substitute()单独保存,而是将方括号替换为大括号。RE在模板中的高级用法没有详细的文档(http://docs.python.org/2/library/string.html#template-strings),所以我可能只是错误地使用了它们。思想?在

下面是一个运行测试用例的示例;请注意,当定义了var时,一切正常:

% python tmpl.py
===$[UNDEFINED]===
===${UNDEFINED}===

% UNDEFINED=Hello python tmpl.py
===$[UNDEFINED]===
===Hello===

下面是测试用例本身:

^{pr2}$

Tags: 代码pyhellostring语法测试用例template大括号
1条回答
网友
1楼 · 发布于 2024-04-24 12:47:26

Template假定大括号字符实际上是大括号:

string.py:194

        if braced is not None:
            try:
                return '%s' % (mapping[braced],)
            except KeyError:
                return self.delimiter + '{' + braced + '}'

如果你认为这是一个bug,就把它贴在http://bugs.python.org上。否则,我建议尽可能使用{}作为分隔符。在

相关问题 更多 >