【问题标题】:Comprehensive guide to Operator Overloading in Python [closed]Python中运算符重载的综合指南[关闭]
【发布时间】:2021-05-22 03:30:39
【问题描述】:

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

【问题讨论】:

标签: python


【解决方案1】:

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 供官方参考!
【解决方案2】:

我喜欢这个参考来快速查看哪些运算符可能被重载:

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

这是另一个资源,为了完整性(也适用于 Python 3)

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

【讨论】:

  • -还没死。
猜你喜欢
  • 2023-03-03
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多