Python中一元运算符的魔术方法

一元运算符的魔术方法

  • __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)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值