文档说,两个相邻的字符串文字是连接的。例如:连接相邻字符串文字时的Python运算符优先级
>>>print("py" "thon")
python
然而,此功能是在编译的时候,而不是像+和*运营商运行时实现的,因此出现这种有趣的效果:
>>>print(2 * "py" + "thon")
pypython
>>>print(2 * "py" "thon")
pythonpython
我理解为什么会这样的语言,但我想不出是这样的原因。是有原因的,还是容易让它独处?
围绕pythons要求把事情放在一条线上的又一个漏洞。 –
我想这是因为python在第一种情况下并未将字面串联视为操作。 https://docs.python.org/2/reference/lexical_analysis.html#string-literal-concatenation –