앞서 공부한 매직메쏘드 기초를 넘어 vector를 이용해서 매직메쏘드를 만들어보자.
class vector(object) :
def __init__(self, *args) :
'''Create a vector, example : v = vector(5, 10)```
if len(args) == 0 :
self._x, self._y = 0, 0
else :
self._x, self._y = args
def __repr__(self) :
return 'vector({},{})'.format(self._X, self._y)
def __str__(self) :
return 'vector({%r},{%r})' % (self._X, self._y)
def __add__(self, other) :
return vector(self._x + other._x, self._y + other._y)
def __mul__(self, y) :
return vector(self._x * y, self._y * y)
def __sub__(self, other) :
return vector(self._x - other._x, self._y - other._y)
위 처럼 클래스를 만들고 몇가지 재미있는 테스트를 해보자.
v1 = vector(5, 7)
v2 = vector(23, 35)
v3 = vector()
print(v1.__init__.__doc__)
결과 : Create a vector, example : v = vector(5, 10)
print(v1 + v2)
print(v1 * 7)
print(bool(v3))