# Розміщення об’єктів у купі

PyObject *_PyObject_New( PyTypeObject *type)
  Return value: New reference.

PyVarObject *_PyObject_NewVar( PyTypeObject *type, Py_ssize_t size)
  Return value: New reference.

PyObject *PyObject_Init( PyObject *op, PyTypeObject *type)
  Return value: Borrowed reference. Part of the Stable ABI.

  Initialize a newly allocated object op with its type and initial reference. Returns the initialized object. Other fields of the object are not affected.

PyVarObject *PyObject_InitVar( PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
  Return value: Borrowed reference. Part of the Stable ABI.

  Це робить все, що робить `PyObject_Init()`, а також ініціалізує інформацію про довжину для об’єкта змінного розміру.

PyObject_New(TYPE, typeobj)

  Allocate a new Python object using the C structure type TYPE and the Python type object typeobj (`PyTypeObject*`). Fields not defined by the Python object header are not initialized. The caller will own the only reference to the object (i.e. its reference count will be one). The size of the memory allocation is determined from the `tp_basicsize` field of the type object.

  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)

  Виділяє новий об’єкт Python, використовуючи структурний тип C TYPE та об’єкт типу Python typeobj (`PyTypeObject*`). Поля, не визначені в заголовку об’єкта Python, не ініціалізуються. Виділена пам’ять дозволяє розмістити структуру TYPE плюс поля size (`Py_ssize_t`) розміром, заданим полем `tp_itemsize` об’єкта typeobj. Це корисно для реалізації об’єктів типу кортежів, які можуть визначати свій розмір під час конструювання. Вбудовування масиву полів в один розподіл зменшує кількість розподілів, покращуючи ефективність управління пам’яттю.

  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

  Об’єкт, видимий у Python як `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()`