Python 运算符重载深入解析

本文介绍了如何在Python中通过重载运算符如__add__、__sub__、__eq__和__lt__改变类实例间的行为,如复数和点类的加减法及比较操作。
摘要由CSDN通过智能技术生成

当我们在Python中定义自己的类时,我们可以通过重载运算符来改变对象之间的行为。这些运算符重载方法允许我们自定义类的实例之间的操作,例如加法、减法、比较等。让我们一起来看看如何在Python中实现这些运算符重载。

运算符重载

1. 加法和减法运算符重载

我们可以通过实现__add____sub__方法来重载加法和减法运算符。这些方法允许我们定义自定义的加法和减法操作。

class ComplexNumber:
    def __init__(self, real, imag):
        self.real = real
        self.imag = imag

    def __add__(self, other):
        return ComplexNumber(self.real + other.real, self.imag + other.imag)

    def __sub__(self, other):
        return ComplexNumber(self.real - other.real, self.imag - other.imag)

# 示例
c1 = ComplexNumber(3, 4)
c2 = ComplexNumber(1, 2)
result = c1 + c2
print(result.real, "+", result.imag, "i")  # 输出:4 + 6i

2. 比较运算符重载

我们可以通过实现__gt____lt____ge____le____eq____ne__方法来重载比较运算符。这些方法允许我们自定义对象之间的比较操作。

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

    def __lt__(self, other):
        return self.x < other.x and self.y < other.y

# 示例
p1 = Point(1, 2)
p2 = Point(3, 4)
print(p1 == p2)  # 输出:False
print(p1 < p2)   # 输出:True

3. 其他运算符重载

还有其他运算符可以重载,例如位运算符、索引运算符等。以下是一些示例:

  • __or__:位或运算符
  • __getitem____setitem__:索引运算符
  • __len__:获取对象的长度
  • __repr__:返回对象的字符串表示形式

你可以根据自己的需求来实现这些运算符重载方法,以便更好地定制你的类。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值