繁体   English   中英

为什么 Python 将加法运算符的连续重复视为一次重复?

[英]Why does Python treat consecutive repetitions of the addition operator as just a single repetition?

今天我注意到 Python 解释器将加法运算符的连续重复视为运算符的重复。 例如:

>>> 1 ++ 2
3

当这样的事件发生时,不简单地引发错误有什么用? 我发现打字的程序员更可信

>>> 1 -+-++ 2

只是疯了; 这不太可能故意出现在代码中。

它似乎没有任何目的,因为写了类似的东西

>>> +-1

简单地返回-1 ,表明该操作不会使数字为正数,而是简单地执行恒等操作。

因为超载了。 它是加法运算符(由__add__方法实现),也是一元正运算符(由__pos__实现)。 将其与-进行比较,它是减法运算符 ( __sub__ ) 和一元负运算符 ( __neg__ )。

因此,例如, 1 ++ 2被解析为1 + (+ 2) ,这将整数简化为1 + 2 ,但对于其他类型则不一定。 请参阅Python 中 + (pos) 一元运算符的用途是什么?

这是数学的。 虽然这对普通人没有意义,但对于 python +(+1) 和 -(-1) 是 +,+(-1) 和 -(+1) 是 -。 回到这个问题,不仅仅是 python 这样做了。 是数学思维。 这就像告诉计算机一个名为 string 的变量等于 29。这听起来不对,但计算机认为这是正常的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM