一元运算符的魔术方法
- __pos__(self)魔术方法:在对象前面使用正号的时候执行的方法。
- __neg__(self)魔术方法:在对象前面使用负号的时候执行的方法。
- __abs__(self)魔术方法:在对象上使用abs函数的时候执行的方法。
- __invert__(self)魔术方法:在对象前面使用~的时候执行的方法。
class Coordinate(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __pos__(self): # 在对象前加“+”的操作
return self
def __neg__(self): # 在对象前加“-”的操作
new_coordinate = Coordinate(-self.x, -self.y)
return new_coordinate
""" 方法2:
self.x = -self.x
self.y = -self.y
return self
"""
def __abs__(self): # 在对象上使用abs方法的操作
new_coordinate = Coordinate(abs(self.x), abs(self.y))
return new_coordinate
def __invert__(self):
new_coordinate = Coordinate(255-self.x, 255-self.y)
return new_coordinate
def __str__(self):
return "Coordinate({},{})".format(self.x,self.y)
c1 = Coordinate(24, 35)
print(c1) # Coordinate(24,35)
c1 = -c1
print(c1) # Coordinate(-24,-35)
c1 = ~c1
print(c1) # Coordinate(231,220)
本文详细介绍了Python中一元运算符的魔术方法,包括__pos__、__neg__、__abs__和__invert__的实现。通过自定义类Coordinate,演示了如何在对象上使用这些魔术方法来执行正号、负号、绝对值和按位取反操作。

323

被折叠的 条评论
为什么被折叠?



