在Python中可以重载++运算符吗?
在Python中,可以重载++运算符吗?
5 个回答
7
大家都说得很好,我想再澄清一点。打开一个Python解释器,看看这个:
>>> i = 1
>>> ++i
1
>>> i
1
在Python里没有++(或者--)这样的操作符。之所以它不会报语法错误,是因为+和-在这里是有效的单目运算符,基本上就像数字前面的符号一样。你可以把++i
想象成“+(+i)”,而--i
可以看作是“-(-i)”。如果你期待++i
像其他语言那样工作,会导致非常麻烦的错误查找。C语言的程序员们:你们要小心。
直接使用i++
或i--
确实会失败,虽然这也算是有用的。
18
不行,Python里不可以重载一元的++运算符,因为它根本就不是一个运算符。
只有Python语法允许的运算符(也就是那些在语言中已经有用法的运算符)才能被重载。
这些是有效的Python运算符,而这个页面列出了你可以定义的方法来重载它们(那些前后都有两个下划线的)。
在Python中,想要增加一个数字,不能用其他语言常见的i++,而是要写成i += 1。
在Python里,+号后面需要有一个操作数。它也可能在前面有一个操作数,这样就会被当作二元运算符来解释。比如+5、++5、...、++++++5都是有效的Python表达式(都等于5),而7 + 5、7 ++ 5、...、7 ++++++++++ 5也是有效的(都等于7 + (+...+5) = 12)。但是5+是不有效的Python表达式。你可以看看这个问题。
另一种想法:根据你想用++运算符做什么,你可以考虑重载一元(前缀)加运算符。不过要注意,这可能会导致一些看起来奇怪的代码。其他人看到你的代码时,可能会以为它没有任何作用而感到困惑。
20
在Python中没有++
这个操作符(也没有'--')。通常我们用+=
这个操作符来进行加法运算。