How special methods are used


In [2]:
from math import hypot

class Vector:
    
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y
        
    def __repr__(self):
        return 'Vector(%r, %r)' % (self.x, self.y)
    
    def __abs__(self):
        return hypot(self.x, self.y)
    
    def __bool__(self):
        return bool(abs(self))
    
    def __add__(self, other):
        x = self.x + other.x
        y = self.y + other.y
        return Vector(x, y)
    
    def __mul__(self, scalar):
        return Vector(self.x * scalar, self.y * scalar)

In [3]:
v1 = Vector(2,4)

In [4]:
v2 = Vector(2,1)

In [5]:
v1 + v2


Out[5]:
Vector(4, 5)

In [6]:
v = Vector(3, 4)

In [7]:
abs(v)


Out[7]:
5.0

In [8]:
v * 3


Out[8]:
Vector(9, 12)

In [9]:
abs(v * 3)


Out[9]:
15.0

In [ ]: