Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python 操作符重载

作者:倾尽尘光暖流年   发布日期:2026-02-18   浏览:111

# 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

解释说明:

  1. 类定义:我们定义了一个 Vector 类,用于表示二维向量。
  2. 初始化方法 (__init__):构造函数,用于初始化向量的 xy 坐标。
  3. 加法 (__add__):重载了 + 操作符,使得两个 Vector 对象可以相加,返回一个新的 Vector 对象。
  4. 减法 (__sub__):重载了 - 操作符,使得两个 Vector 对象可以相减,返回一个新的 Vector 对象。
  5. 乘法 (__mul__):重载了 * 操作符,使得 Vector 对象可以与标量相乘,返回一个新的 Vector 对象。
  6. 除法 (__truediv__):重载了 / 操作符,使得 Vector 对象可以与标量相除,返回一个新的 Vector 对象。
  7. 等于 (__eq__):重载了 == 操作符,用于比较两个 Vector 对象是否相等。
  8. 字符串表示 (__str__):重载了 str 方法,使得可以直接打印 Vector 对象。

通过这些操作符重载,我们可以像使用内置类型一样方便地操作自定义的 Vector 类型。

上一篇:python位运算符

下一篇:dict python

大家都在看

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python 私有函数

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站