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

Cas*_*ash 30 python

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

Gon*_*alo 49

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'
Run Code Online (Sandbox Code Playgroud)

可以在此处查看 Python 3文档中的相关部分.


Oli*_*ier 24

我喜欢这个参考,以快速查看哪些运算符可能超载:

链接似乎已经死了

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

这是一个新资源

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