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

时间:2010-03-08 10:33:19

标签: python

是否有关于运营商在任何地方超载的综合指南?最好在网上,但一本书也可以。 operator module的描述留下了很多,例如包括不能重载的运算符和缺少r运算符或提供合理的默认值。 (编写这些运算符是很好的做法,但仍然属于一个很好的参考)

2 个答案:

答案 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)

我喜欢这个参考,以便快速查看哪些运营商可能过载:

该链接显示为

http://rgruet.free.fr/PQR26/PQR2.6.html#SpecialMethods

这是一个新资源

http://www.python-course.eu/python3_magic_methods.php