龙空技术网

解码 Python Mag魔法 -> __neg__ 和 __pos__

自由坦荡的湖泊AI 128

前言:

眼前兄弟们对“python中pos的含义”可能比较关心,咱们都需要了解一些“python中pos的含义”的相关资讯。那么小编在网络上网罗了一些关于“python中pos的含义””的相关知识,希望姐妹们能喜欢,大家一起来学习一下吧!

__ neg__

事实上,这些运算符的使用简单直观,反映了现实世界中的对应运算符。通过创建 Vector 类来深入研究一个实际示例来演示它们的用法。

class Vector:    def __init__(self, x, y):        self.x = x        self.y = y    def __neg__(self):        return Vector(-self.x, -self.y)    def __add__(self, other):        return Vector(self.x + other.x, self.y + other.y)    def __repr__(self):        return f"Vector({self.x}, {self.y})"v = Vector(1, 2)v + (-v)
Vector(0, 0)
__pos__

Vector 类中,将重新定义一元加运算符 ( + ) 的行为来计算向量的正值,展示 Python 魔术方法的多功能性。

import mathclass Vector:    def __init__(self, x, y):        self.x = x        self.y = y    def __neg__(self):        return Vector(-self.x, -self.y)    def __add__(self, other):        return Vector(self.x + other.x, self.y + other.y)    def __pos__(self):        magnitude = math.sqrt(self.x**2 + self.y**2)        return Vector(magnitude, 0)    def __repr__(self):        return f"Vector({self.x}, {self.y})"v = Vector(1, 2)print(+v)
Vector(2.23606797749979, 0)

Python 中的 __neg____pos__ 方法提供了强大的机制来定义一元运算符的自定义行为。通过在类中实现这些方法,可以控制对象如何分别响应一元否定 ( - ) 和一元加 ( + ) 运算符。这种灵活性可以创建更直观和更具表现力的类,使代码更易于阅读和维护。无论使用的是数字、向量还是其他自定义类型。

标签: #python中pos的含义