流暢的python學習筆記-第13章

第13章 正確重載運算符

<!-- TOC -->python

<!-- /TOC -->it

幾個不經常使用的運算符

這裏咱們看幾個以前沒講過的運算符__neg__,__pos__,__invert__class

__neg__是在-v的時候調用object

__pos__是在+v的時候調用co

__invert__是在~v的時候調用data

看下面的例子:運算符

class Vector(object):
    def __init__(self, x):
        self.x = x

    def __neg__(self):
        return "Vector(%d)" % (-self.x)

    def __str__(self):
        return "Vector(%s)" % (str(self.data))

    def __iter__(self):
        return iter(self.data)

    def __pos__(self):
        return "Vector(%d)" % (self.x + 1)

    def __invert__(self):
        return "Vector(%d)" % (~self.x)


if __name__ == "__main__":

    v = Vector(1)

    print(-v)  # Vector(-1)
    print(+v)  # Vector(2)
    print(~v)  # Vector(-2)

返回結果:return

Vector(-1)
Vector(2)
Vector(-2)
相關文章
相關標籤/搜索