字符串语法允许一行中没有运算符的两个字符串?

时间:2015-06-01 21:40:29

标签: python syntax

我刚刚发现了我认为是拼写错误但Python接受了它。

foo = {'a': 'b'}
foo.get('a'"")

返回'b'。在Python中将'a'""定义为函数的有效参数?

1 个答案:

答案 0 :(得分:2)

Python连接所有连续的字符串。如果在某个职能部门或其他地方,这并不重要。

请参阅参考文档的String literal concatenation section

  

允许使用不同引用约定的多个相邻字符串文字(由空格分隔),其含义与其连接相同。

这是在parsel级别完成的;最后的字节码只存储一个字符串对象。见What is under the hood of x = 'y' 'z' in Python?

该功能是从C中复制而来的。来自(failed) proposal to remove the feature

  

许多Python解析规则与C有意兼容。[...]在C中,隐式连接是连接字符串而不使用(运行时)函数调用存储到变量中的唯一方法。

在生成长字符串时,该功能非常有用:

long_value = (
    'The quick brown fox jumped over the lazy fox and kept '
    'the string within the 80 character boundary.'
)