힙에 객체 할당하기

PyObject *_PyObject_New(PyTypeObject *type)
반환값: 새 참조.
PyVarObject *_PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
반환값: 새 참조.
PyObject *PyObject_Init(PyObject *op, PyTypeObject *type)
반환값: 빌린 참조. Part of the 안정 ABI.

새로 할당된 객체 op를 형과 초기 참조로 초기화합니다. 초기화된 객체를 반환합니다. 객체의 다른 필드는 영향을 받지 않습니다.

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
반환값: 빌린 참조. Part of the 안정 ABI.

이것은 PyObject_Init()가 수행하는 모든 작업을 수행하고, 가변 크기 객체의 길이 정보도 초기화합니다.

PyObject_New(TYPE, typeobj)

C 구조체 형 TYPE과 파이썬 형 객체 typeobj (PyTypeObject*) 를 사용하여 새로운 파이썬 객체를 할당합니다. 파이썬 객체 헤더로 정의되지 않은 필드는 초기화되지 않습니다. 호출자는 객체에 대한 유일한 참조를 소유하게 됩니다 (즉, 객체의 참조 횟수는 1이 됩니다). 메모리 할당의 크기는 형 객체의 tp_basicsize 필드에서 결정됩니다.

Note that this function is unsuitable if typeobj has Py_TPFLAGS_HAVE_GC set. For such objects, use PyObject_GC_New() instead.

PyObject_NewVar(TYPE, typeobj, size)

C 구조체 형 TYPE과 파이썬 타입 형 typeobj (PyTypeObject*) 를 사용하여 새로운 파이썬 객체를 할당합니다. 파이썬 객체 헤더로 정의되지 않은 필드는 초기화되지 않습니다. 할당된 메모리는 TYPE 구조체에 더해 typeobjtp_itemsize 필드에 의해 주어진 크기의 size (Py_ssize_t) 필드를 허용합니다. 이는 튜플과 같은 객체를 구현할 때 유용합니다. 튜플은 만들 때 크기를 결정할 수 있습니다. 같은 할당에 필드 배열을 포함 시키면, 할당 횟수가 줄어들어, 메모리 관리 효율성이 향상됩니다.

Note that this function is unsuitable if typeobj has Py_TPFLAGS_HAVE_GC set. For such objects, use PyObject_GC_NewVar() instead.

PyObject _Py_NoneStruct

파이썬에서 None으로 노출되는 객체. 이 객체에 대한 포인터로 평가되는 Py_None 매크로를 사용해서 액세스해야 합니다.

더 보기

모듈 객체

확장 모듈을 할당하고 만듭니다.

Deprecated aliases

These are soft deprecated aliases to existing functions and macros. They exist solely for backwards compatibility.

Deprecated alias

Function

PyObject_NEW(type, typeobj)

PyObject_New

PyObject_NEW_VAR(type, typeobj, n)

PyObject_NewVar

PyObject_INIT(op, typeobj)

PyObject_Init()

PyObject_INIT_VAR(op, typeobj, n)

PyObject_InitVar()

PyObject_MALLOC(n)

PyObject_Malloc()

PyObject_REALLOC(p, n)

PyObject_Realloc()

PyObject_FREE(p)

PyObject_Free()

PyObject_DEL(p)

PyObject_Free()

PyObject_Del(p)

PyObject_Free()