CPython 인터프리터 내부에서 파이썬의 모든 동적 객체를 C 언어로 표현하는 근간 구조체인 **PyObject**와 객체의 행동 양식을 규정하는 **PyTypeObject**를 배웁니다.
1. CPython C-API 아키텍처 용어 사전 (Glossary)
- PyObject: CPython 내부에서 모든 파이썬 객체의 최상위 공통 C 구조체로, 참조 카운터(
ob_refcnt)와 타입 객체 포인터(ob_type)를 선두에 갖습니다. - PyVarObject: 파이썬 리스트, 튜플, 문자열처럼 길이가 변하는 시퀀스 객체를 위한 구조체로,
ob_size필드가 추가로 존재합니다. - PyTypeObject: 파이썬 타입(Class) 자체를 정의하는 C 메타 구조체로, 메모리 크기(
tp_basicsize), 할당 해제 함수(tp_dealloc), 슬롯 매핑 테이블을 갖습니다.
2. CPython C 구조체 핵심 정의 (C-API Source)
typedef struct _object {
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
struct _typeobject *ob_type;
} PyObject;