编程助手学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
的类。这个类用于表示一个二维向量,包含两个分量 a
和 b
。
2. 初始化方法 __init__
def __init__(self, a, b):
self.a = a
self.b = b
__init__
是类的构造函数,用于初始化对象。当创建一个 Vector
对象时,需要传入两个参数 a
和 b
,它们分别表示向量的两个分量。self.a
和 self.b
是实例变量,用于存储这两个分量。
3. 字符串表示方法 __str__
def __str__(self):
return 'Vector (%d, %d)' % (self.a, self.b)
__str__
方法用于定义对象的字符串表示形式。当你使用 print
函数打印一个 Vector
对象时,Python 会自动调用这个方法。这里返回的字符串格式为 Vector (a, b)
,其中 a
和 b
是向量的两个分量。
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
,其分量为2
和10
。v2 = Vector(5, -2)
创建了另一个Vector
对象v2
,其分量为5
和-2
。v1 + v2
调用了__add__
方法,返回一个新的Vector
对象,其分量为2 + 5 = 7
和10 + (-2) = 8
。print(v1 + v2)
打印这个新的Vector
对象,由于__str__
方法的存在,输出为Vector (7, 8)
。
6. 输出结果
Vector (7, 8)
这是程序的最终输出,表示两个向量相加的结果。
总结
这个脚本展示了如何使用Python类来表示向量,并通过重载操作符来实现向量的加法操作。通过定义 __init__
、__str__
和 __add__
方法,我们可以创建自定义对象并对其进行操作,使得代码更加直观和易于理解。