这两个字符串之间应该有一个逗号
foo = ['dumb'
'error']
但是,如果您忘记了逗号,它只会将字符串合并在一起,而不是产生语法错误。你的结果将是
['dumberror']
我花了几个小时追踪这个。为什么 Python 解释器要合并这些字符串?
这两个字符串之间应该有一个逗号
foo = ['dumb'
'error']
但是,如果您忘记了逗号,它只会将字符串合并在一起,而不是产生语法错误。你的结果将是
['dumberror']
我花了几个小时追踪这个。为什么 Python 解释器要合并这些字符串?
这是一个记录在案的功能,允许在源代码中使用字符串文字进行更好的格式化。
允许多个相邻的字符串或字节文字(由空格分隔),可能使用不同的引用约定,并且它们的含义与它们的连接相同。因此,"hello" 'world' 等价于 "helloworld"。此功能可用于减少所需的反斜杠数量,方便地将长字符串拆分为长行,甚至可以为部分字符串添加注释。
同样值得记住的是:
请注意,此功能是在语法级别定义的,但在编译时实现。'+' 运算符必须用于在运行时连接字符串表达式。另请注意,文字连接可以为每个组件使用不同的引用样式(甚至混合原始字符串和三引号字符串)。
这不是错误,这是一个功能!Python 被记录为连接字符串,它们之间只有空格。
http://docs.python.org/release/2.5.2/ref/string-catenation.html