> **Источник:** https://python-all.ru/2.7/library/new.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 8.16. [`new`](https://python-all.ru/2.7/library/new.html#module-new) – Создание внутренних объектов времени выполнения

Устарело с версии 2.6: Модуль [`new`](https://python-all.ru/2.7/library/new.html#module-new) удалён в Python 3. Вместо него используйте классы модуля [`types`](https://python-all.ru/2.7/library/types.html#module-types) .

Модуль [`new`](https://python-all.ru/2.7/library/new.html#module-new) предоставляет интерфейс к функциям создания объектов интерпретатора. В основном он используется в функциях типа marshal, когда новый объект нужно создать «магически», а не через обычные функции создания. Этот модуль предоставляет низкоуровневый интерфейс к интерпретатору, поэтому при его использовании следует соблюдать осторожность. Можно передать бессмысленные аргументы, которые приведут к краху интерпретатора при использовании объекта.

Модуль [`new`](https://python-all.ru/2.7/library/new.html#module-new) определяет следующие функции:

#### `new.instance(class[, dict])`

Эта функция создаёт экземпляр *class* со словарём *dict* без вызова конструктора [`__init__()`](https://python-all.ru/2.7/reference/datamodel.html#object.__init__). Если *dict* опущен или равен `None`, для нового экземпляра создаётся новый пустой словарь. Обратите внимание, что нет никаких гарантий, что объект будет находиться в согласованном состоянии.

#### `new.instancemethod(function, instance, class)`

Эта функция возвращает объект метода, привязанный к *instance*, или непривязанный, если *instance* равен `None`. *function* должен быть вызываемым.

#### `new.function(code, globals[, name[, argdefs[, closure]]])`

Возвращает функцию Python с заданными кодом и глобальными переменными. Если указан *name*, это должна быть строка или `None`. Если это строка, функция получит указанное имя, в противном случае имя функции будет взято из `code.co_name`. Если задан *argdefs*, это должен быть кортеж, и он будет использоваться для определения значений параметров по умолчанию. Если задан *closure*, это должен быть `None` или кортеж объектов ячеек, содержащих объекты для привязки к именам из `code.co_freevars`.

#### `new.code(argcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab)`

Эта функция является интерфейсом к C-функции [`PyCode_New()`](https://python-all.ru/2.7/c-api/code.html#c.PyCode_New).

#### `new.module(name[, doc])`

Эта функция возвращает новый объект модуля с именем *name*. *name* должен быть строкой. Необязательный аргумент *doc* может иметь любой тип.

#### `new.classobj(name, baseclasses, dict)`

Эта функция возвращает новый объект класса с именем *name*, производный от *baseclasses* (который должен быть кортежем классов) и с пространством имён *dict*.
