반응형
주로 가독성을 위해 다음을 수행하는 namedtuple과 유사한 것을 원합니다.
from Camelot import namedgroup
Point = namedgroup('Point', ['x', 'y'])
p = Point(0, 0)
p.x = 10
>>> p
Point(x=10, y=0)
>>> p.x *= 10
Point(x=100, y=0)
결과물을 피클 할 수 있어야합니다. 그리고 명명 된 튜플의 특성에 따라 표현 될 때 출력의 순서는 객체를 구성 할 때 매개 변수 목록의 순서와 일치해야합니다.
해결 방법
namedtuple
과 동일한 API 및 메모리 풋 프린트를 가지며 할당을 지원합니다 (더 빠를 것입니다). 예를 들면 :
from recordclass import recordclass
Point = recordclass('Point', 'x y')
>>> p = Point(1, 2)
>>> p
Point(x=1, y=2)
>>> print(p.x, p.y)
1 2
>>> p.x += 2; p.y += 3; print(p)
Point(x=3, y=5)
Python 3.6 이상 recordclass
(0.5 이후)의 경우 typehints를 지원합니다.
from recordclass import recordclass, RecordClass
class Point(RecordClass):
x: int
y: int
>>> Point.__annotations__
{'x':int, 'y':int}
>>> p = Point(1, 2)
>>> p
Point(x=1, y=2)
>>> print(p.x, p.y)
1 2
>>> p.x += 2; p.y += 3; print(p)
Point(x=3, y=5)
참조 페이지 https://stackoverflow.com/questions/29290359
반응형
'파이썬' 카테고리의 다른 글
파이썬 anaconda conda 명령을 사용하여 PyPi 패키지를 설치하는 방법 (0) | 2020.11.27 |
---|---|
파이썬 헤더없이 테이블에서 읽는 팬더 (0) | 2020.11.27 |
파이썬 Pyinstaller 설정 아이콘 (0) | 2020.11.27 |
파이썬 for 루프에서 카운트 다운하는 방법? (0) | 2020.11.27 |
파이썬 Python의 교차 플랫폼 / dev / null (0) | 2020.11.27 |
댓글