6. 一元运算符重载
一元运算符重载
运算符和方法
方法名
运算符和表达式
说明
__neg__(self)
-self
负号
__pos__(self)
+self
正号
__invert__(self)
~self
取反
一元运算符重载的方法的格式:
class 类名:
def __xxx__(self):
...
只有一个参数绑定要运算的数据自身。
示例
# 一元运算符重载 示例
class Vector1D:
'''用于描述一维向量的类!'''
def __init__(self, x):
self.x = x
def __repr__(self):
return f'Vector1D({self.x})'
def __neg__(self): # -
print('__neg__:负号运算符重载')
return Vector1D(-self.x)
def __pos__(self): # +
print('__pos__:正号运算符重载')
return Vector1D(self.x)
def __invert__(self): # ~
print('__invert__:取反运算符重载')
return Vector1D(0)
v1 = Vector1D(100)
v2 = -v1
print('v2:', v2)
v2 = +v1
print('v2:', v2)
v2 = ~v1
print('v2:', v2)