Python 解析器 将其解释为一个字符串。Lexical
Analysis文档中对此进行了详细记录:
字符串文字串联
允许使用可能使用不同的引用约定的多个相邻字符串文字(由空格分隔),其含义与它们的串联相同。因此,
"hello"'world'等效于"helloworld"。
编译后的Python代码只能看到一个字符串对象。您可以通过要求Python生成此类字符串的AST来查看此内容:
>>> import ast>>> ast.dump(ast.parse("'hello' 'world'", mode='eval').body)"Str(s='helloworld')"实际上,正是在构建AST的过程中触发了级联,因为遍历了语法分析树,请参见AST
C源代码中的
parsestrplus()函数。
该功能专门用于减少反斜杠的需求。当它仍然在 逻辑
行中时,使用它在物理行之间分解字符串:
print('Hello world!', 'This string is spans just one ' 'logical line but is broken across multiple physical ' 'source lines.')可以使用括号,方括号或花括号将多条物理线隐式合并为一条物理线。
此字符串连接功能是从C复制而来的,但是Guido
van Rossum在记录中遗憾地将其添加到Python中。该帖子有一个很长很有趣的话题,并且为完全删除该功能提供了很多支持。



