编程助手学Python--Deepseek运算符重载

#!/usr/bin/python3
 
class Vector:
   def __init__(self, a, b):
      self.a = a
      self.b = b
 
   def __str__(self):
      return 'Vector (%d, %d)' % (self.a, self.b)
   
   def __add__(self,other):
      return Vector(self.a + other.a, self.b + other.b)
 
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)  详细解释

这个Python脚本定义了一个名为 Vector 的类,并实现了向量的加法操作。下面是对代码的详细解释:

1. 类的定义

class Vector:

这里定义了一个名为 Vector 的类。这个类用于表示一个二维向量,包含两个分量 ab

2. 初始化方法 __init__

def __init__(self, a, b):
    self.a = a
    self.b = b

__init__ 是类的构造函数,用于初始化对象。当创建一个 Vector 对象时,需要传入两个参数 ab,它们分别表示向量的两个分量。self.aself.b 是实例变量,用于存储这两个分量。

3. 字符串表示方法 __str__

def __str__(self):
    return 'Vector (%d, %d)' % (self.a, self.b)

__str__ 方法用于定义对象的字符串表示形式。当你使用 print 函数打印一个 Vector 对象时,Python 会自动调用这个方法。这里返回的字符串格式为 Vector (a, b),其中 ab 是向量的两个分量。

4. 加法操作符重载 __add__

def __add__(self, other):
    return Vector(self.a + other.a, self.b + other.b)

__add__ 方法用于重载加法操作符 +。当你对两个 Vector 对象使用 + 操作符时,Python 会自动调用这个方法。这个方法返回一个新的 Vector 对象,其分量是当前向量 (self) 和另一个向量 (other) 对应分量的和。

5. 创建对象并进行加法操作

v1 = Vector(2, 10)
v2 = Vector(5, -2)
print(v1 + v2)
  • v1 = Vector(2, 10) 创建了一个 Vector 对象 v1,其分量为 210
  • v2 = Vector(5, -2) 创建了另一个 Vector 对象 v2,其分量为 5-2
  • v1 + v2 调用了 __add__ 方法,返回一个新的 Vector 对象,其分量为 2 + 5 = 710 + (-2) = 8
  • print(v1 + v2) 打印这个新的 Vector 对象,由于 __str__ 方法的存在,输出为 Vector (7, 8)

6. 输出结果

Vector (7, 8)

这是程序的最终输出,表示两个向量相加的结果。

总结

这个脚本展示了如何使用Python类来表示向量,并通过重载操作符来实现向量的加法操作。通过定义 __init____str____add__ 方法,我们可以创建自定义对象并对其进行操作,使得代码更加直观和易于理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值