编程助手学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__ 方法,我们可以创建自定义对象并对其进行操作,使得代码更加直观和易于理解。
1123

被折叠的 条评论
为什么被折叠?



