# Python 操作符重载示例
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
# 重载加法操作符 (+)
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
# 重载减法操作符 (-)
def __sub__(self, other):
return Vector(self.x - other.x, self.y - other.y)
# 重载乘法操作符 (*)
def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar)
# 重载除法操作符 (/)
def __truediv__(self, scalar):
return Vector(self.x / scalar, self.y / scalar)
# 重载等于操作符 (==)
def __eq__(self, other):
return self.x == other.x and self.y == other.y
# 重载字符串表示形式
def __str__(self):
return f"Vector({self.x}, {self.y})"
# 创建两个向量对象
v1 = Vector(1, 2)
v2 = Vector(3, 4)
# 使用重载的操作符
v3 = v1 + v2
print(v3) # 输出: Vector(4, 6)
v4 = v1 - v2
print(v4) # 输出: Vector(-2, -2)
v5 = v1 * 2
print(v5) # 输出: Vector(2, 4)
v6 = v2 / 2
print(v6) # 输出: Vector(1.5, 2.0)
print(v1 == v2) # 输出: False
print(v1 == Vector(1, 2)) # 输出: True
Vector 类,用于表示二维向量。__init__):构造函数,用于初始化向量的 x 和 y 坐标。__add__):重载了 + 操作符,使得两个 Vector 对象可以相加,返回一个新的 Vector 对象。__sub__):重载了 - 操作符,使得两个 Vector 对象可以相减,返回一个新的 Vector 对象。__mul__):重载了 * 操作符,使得 Vector 对象可以与标量相乘,返回一个新的 Vector 对象。__truediv__):重载了 / 操作符,使得 Vector 对象可以与标量相除,返回一个新的 Vector 对象。__eq__):重载了 == 操作符,用于比较两个 Vector 对象是否相等。__str__):重载了 str 方法,使得可以直接打印 Vector 对象。通过这些操作符重载,我们可以像使用内置类型一样方便地操作自定义的 Vector 类型。
上一篇:python位运算符
下一篇:dict python
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站