Python中运算符重载的综合指南

41 投票
1 回答
56262 浏览
提问于 2025-04-15 20:09

有没有一个全面的指南可以教我们如何重载运算符?最好是在线的,如果有书也可以。关于运算符模块的描述有很多遗漏,比如哪些运算符是不能重载的,还有一些反向运算符没有提到,或者没有给出合理的默认值。(写这些运算符是个好习惯,但还是需要一个好的参考资料)

1 个回答

53

在Python中,运算符重载是通过在任何类中重新定义一些特殊的方法来实现的。这一点在Python语言参考中有详细说明。

举个例子,如果你想重载加法运算符:

>>> class MyClass(object):
...     def __add__(self, x):
...         return '%s plus %s' % (self, x)
... 
>>> obj = MyClass()
>>> obj + 1
'<__main__.MyClass object at 0xb77eff2c> plus 1'

撰写回答