说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
object.__neg__(self)
是 Python 中的一个特殊方法,用于实现对象的负数运算。当你对一个对象应用负号操作时(如 -obj
),Python 会调用这个方法来计算对象的负值。
以下是一个简单的例子:
class Number:
def __init__(self, value):
self.value = value
def __neg__(self):
return Number(-self.value)
def __repr__(self):
return f'Number({self.value})'
# 创建一个 Number 对象
num = Number(5)
# 对象的负数运算
negative_num = -num
# 输出结果
print(negative_num) # 输出 Number(-5)
在这个例子中,我们定义了一个 Number 类,实现了 __neg__()
方法来计算对象的负数。当对 num 对象应用负号操作时,Python 会调用 __neg__()
方法,返回一个新的 Number 对象,其值为原始对象值的负数。
一个更实用的例子是在表示向量时使用负数运算。假设我们有一个 Vector 类来表示二维向量,并且我们想要能够轻松地获取其相反方向的向量。我们可以使用 neg() 方法来实现这一功能。
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __neg__(self):
return Vector(-self.x, -self.y)
def __repr__(self):
return f'Vector({self.x}, {self.y})'
# 创建一个 Vector 对象
v = Vector(3, 4)
# 获取相反方向的向量
negative_v = -v
# 输出结果
print(negative_v) # 输出 Vector(-3, -4)
在这个例子中,__neg__()
方法返回了一个新的 Vector 对象,其 x 和 y 分别是原始向量 x 和 y 的负值。这样,我们就能够通过简单地对向量应用负号操作来获取其相反方向的向量。
https://docs.python.org/zh-cn/3/reference/datamodel.html#object.__neg__
更新时间:2024-03-05 12:38:03 标签:python 特殊方法 负数