Python中Dunder方法 特殊方法??xx??在Python中的运算符重载

dunder方法python中以双下划线开头和结尾的特殊方法,用于实现类的运算符重载和内置行为。它们让自定义类可以支持如加法、比较、字符串表示等操作,例如\_\_add\_\_实现加法,\_\_eq\_\_和\_\_lt\_\_实现等于和小于比较,\_\_len\_\_实现长度获取。使用时需注意:1. 不要滥用,避免语义不清的操作;2. 保持一致性,如实现\_\_add\_\_的同时考虑\_\_radd\_\_;3. 返回合适类型,通常返回新对象而非修改原对象;4. 符合不可变性预期。可通过dir()函数查看类的dunder方法,帮助调试或学习代码。

在Python中,Dunder方法(也叫“魔术方法”)是以双下划线开头和结尾的方法,比如__init__、__add__等。它们让类可以支持像加法、减法、字符串表示这样的操作。最常见的用途之一就是运算符重载,也就是让自定义对象可以使用像+、-这样的操作符。


什么是Dunder方法?

Dunder是“Double UNDERscore”的缩写,这些方法不是随便写的,而是Python解释器会自动调用的特殊方法。例如:

  • 当你写a + b时,实际上是调用了a.__add__(b)
  • 当你打印一个对象时,调用的是它的__str__或__repr__

它们的存在是为了让我们能够为自定义类实现类似内置类型的行为。


如何用Dunder方法实现运算符重载?

如果你想让你的类支持加法、比较、长度获取等功能,就需要实现对应的Dunder方法。下面是一些常用的例子:

立即学习“Python免费学习笔记(深入)”;

加法:__add__

class Point:    def __init__(self, x, y):        self.x = x        self.y = y    def __add__(self, other):        return Point(self.x + other.x, self.y + other.y)

登录后复制

文章来自互联网,不代表电脑知识网立场。发布者:,转载请注明出处:https://www.pcxun.com/n/713902.html

(0)
上一篇 2025-06-08 15:05
下一篇 2025-06-08 15:05

相关推荐