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