Vector의 format() 메서드는 Vector2d의 format과 비슷하지만 구면 좌표를 사용한다.
즉, 4차원 공간을 표현하는 방식이 조금 다르다.
format() 메서드를수정하기 위해선 몇 가지 지원 메서드를 구현해야 하는데 angle(n)은 특정 좌표의 각 좌표를 계산하여, 모든 각 좌표의 반복형을 반환한다.
import itertools
class Vector:
typecode = 'd'
def __init__(self, components):
self._components = array(self.typecode, components)
def __iter__(self):
return iter(self._components)
def __repr__(self):
components = reprlib.repr(self._components)
components = components[components.find('['):-1]
return "Vector({})".format(components)
def __str__(self):
return str(tuple(self))
def __bytes__(self):
return (bytes([ord(self.typecode)]) + bytes(self._components)