为什么我可以在计算中任意重复Python中的+?

Gol*_*den 6 python syntax

今天我开始学习Python.我学到的第一件事是值,表达式和(算术)运算符.到目前为止,一切都是有道理的,除了一件我没有得到的东西:

2+2
Run Code Online (Sandbox Code Playgroud)

评估为4(这是有道理的),

2+
Run Code Online (Sandbox Code Playgroud)

结果是SyntaxError(这也是有道理的).但是,从我的观点来看,下面的代码行是没有意义的:

2+++2
Run Code Online (Sandbox Code Playgroud)

这也导致了4,我想知道为什么.如果我可以将它与JavaScript(我在日常使用中)进行比较,则会导致JavaScript出错.

那么,有两个问题:

  1. 为什么这不会导致语法错误?
  2. 如何评估这个表达式?附加+标志会发生什么变化?

Mur*_*nik 10

Python有一元运算+ - +2将评估为2.所以,该表达式实际上被评估为:

2+(+(+2))
Run Code Online (Sandbox Code Playgroud)

当然,这是4.