文檔說,兩個相鄰的字符串文字是連接的。例如:連接相鄰字符串文字時的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 –