= + Python运算符在语法上是正确的

gsa*_*ras 11 python increment operators language-lawyer python-2.7

我不小心写道:

total_acc =+ accuracy
Run Code Online (Sandbox Code Playgroud)

代替:

total_acc += accuracy
Run Code Online (Sandbox Code Playgroud)

我在网上搜索,找不到任何东西.那么发生了什么,为什么Python认为我的意思是我在打字?

计算机太信任我们了.:)

ale*_*cxe 9

如果您有兴趣尽早发现此类错误,可以使用静态代码分析.例如,flake8:

$ cat test.py
total_acc = 0
accuracy = 10

total_acc =+ accuracy
$ flake8 test.py
test.py:4:12: E225 missing whitespace around operator
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它抱怨了之后的额外空间+,以为你真正的意思total_acc = +accuracy.这可以帮助您更早地发现问题.

仅供参考,pylint也会抓住这一点.

  • 你的答案在这里增加*真的*特别的东西,你值得一个upvote²! (2认同)

Joh*_*ard 6

这与你想做的一样total_acc = -accuracy,除了积极而不是消极.它基本上是一样的total_acc = accuracy,因为在值之前添加+不会改变它.

这称为一元运算符,因为只有一个参数(ex :) +a而不是两个(ex:)a+b.

这个链接解释了一下.