Vector 버전 #5:포매팅

매일 공부(ML)·2023년 1월 25일
0

Fluent Python

목록 보기
71/130

시퀀스 해킹, 해시, 슬라이스

객체지향 상용구

Vector 버전 #5: 포매팅

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)
        
profile
성장을 도울 아카이빙 블로그

0개의 댓글