是否有关于运营商在任何地方超载的综合指南?最好在网上,但一本书也可以。 operator module的描述留下了很多,例如包括不能重载的运算符和缺少r运算符或提供合理的默认值。 (编写这些运算符是很好的做法,但仍然属于一个很好的参考)
答案 0 :(得分:48)
Python的运算符重载是通过重新定义任何类中的某些特殊方法来完成的。 这是Python语言参考中的explained。
例如,要重载加法运算符:
>>> class MyClass(object):
... def __add__(self, x):
... return '%s plus %s' % (self, x)
...
>>> obj = MyClass()
>>> obj + 1
'<__main__.MyClass object at 0xb77eff2c> plus 1'
可以看到Python 3文档中的相关部分here。
答案 1 :(得分:23)