在python 2.6中,为什么以下行有效?
my_line = 'foo' 'bar'
如果这是有效的,为什么不是以下内容:
my_list = 1 2
第一个例子是字符串连接,但是,以下内容也无效(感谢上帝):
foo = 'foo'
bar = 'bar'
foo_bar = foo bar
答案 0 :(得分:20)
这是string literal concatenation。如文档中所述,优势包括以下内容:
此功能可用于减少 要分割的反斜杠数量 长串方便 行,甚至添加评论 字符串的一部分...
接下来请注意,此连接是在编译时而不是运行时完成的。
PEP 3126中描述了此背后的历史和基本原理以及删除该功能的被拒绝建议。
答案 1 :(得分:8)
my_line = 'foo' 'bar'
是字符串连接。
答案 2 :(得分:6)
也许这是C的祖先。在C中,以下内容完全有效:
char* ptr = "hello " "world";
它由C pre-processor (cpp)实现,该链接中给出的基本原理是:
这允许拆分长字符串 多行,也允许 由C产生的字符串文字 预处理器定义和宏 在编译时附加到字符串
答案 3 :(得分:5)
这并不矛盾。字符串和整数有不同的方法。
整数连接没有意义。
字符串连接是一种有意义的默认行为。