0
은 내가 만들려고 해요 고전 Point
구조체의 동등한 있습니다.파이썬에서 메모리 효율적인 구조체 표현을 더 많이?
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
그러나 나는 단지 namedtuples의 추가 오버 헤드 (예 : 길이, 인덱스 액세스, __contains__
등) (속성 이름으로 액세스)과 없음 또한, 내 유스 케이스는 고정 된 한 종류의 제한된 기능이 필요합니다 Point.x
및 Point.y
을 위해 어쩌면 정적 타이핑 보증에 의존하는 또 다른 해킹이있다.
ctypes
또는
Cython
솔루션일까요?
사용자 정의 클래스와'__slots__'? namedtuple의 기능은 https://github.com/python/cpython/blob/3.6/Lib/collections/__init__.py#L310에서 확인할 수 있습니다. – jonrsharpe
@jonrsharpe'namedtuple' 인스턴스는'__slots__' 옵션을 가지고 있습니다. –
@EliKorvigo 네,뿐만 아니라 영업 이익은 (그들이 당 인스턴스 존재하지 않는 "오버 헤드"의 방법으로 많이 아니에요 있지만) 그들이 원하지 않는 말한다 잔뜩. 어쨌든 그것을 보여줄 링크를 추가했습니다. – jonrsharpe