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

标签 python

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

最佳答案

Python 的运算符重载是通过在任何类中重新定义某些特殊方法来完成的。 这是explained在 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'

Python 3 文档中的相关章节可见here .

关于python - Python中运算符重载的综合指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400635/

相关文章:

python - Raspberry Pi - 访问 0x40 : Check your I2C address 时出错

python - 找不到 'glue' 的索引页

python 将字符串转换为日期时间(django 时间格式)

python - JSON解码错误: Expecting value: line 1 column 1 (char 0) error in local machine environment but not in server based environment

python - 使用自定义 django 模型后无法登录

python - gevent-socketio 从线程发送消息

python - 使用用户输入的文件路径自动完成

python - 如何处理 Pyodide/STLite 中的请求?

python - 每当 ip 监视器写入 stdout 时调用脚本

python - 分配(而不是定义)一个 __getitem__ 魔法方法会破坏索引