Документация Python неофициальный перевод

8.16. new – Создание внутренних объектов времени выполненияnew – Creation of runtime internal objects

Устарело с версии 2.6: Модуль new удалён в Python 3. Вместо него используйте классы модуля types .

Модуль new предоставляет интерфейс к функциям создания объектов интерпретатора. В основном он используется в функциях типа marshal, когда новый объект нужно создать «магически», а не через обычные функции создания. Этот модуль предоставляет низкоуровневый интерфейс к интерпретатору, поэтому при его использовании следует соблюдать осторожность. Можно передать бессмысленные аргументы, которые приведут к краху интерпретатора при использовании объекта.

Модуль new определяет следующие функции:

new.instance(class[, dict])

Эта функция создаёт экземпляр class со словарём dict без вызова конструктора __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().

new.module(name[, doc])

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

new.classobj(name, baseclasses, dict)

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