# 3.30 `new` -- Runtime implementation object creation

The `new` module allows an interface to the interpreter object creation functions. This is for use primarily in marshal-type functions, when a new object needs to be created ``magically'' and not by using the regular creation functions. This module provides a low-level interface to the interpreter, so care must be exercised when using this module.

The `new` module defines the following functions:

`instance` (class, dict)
  This function creates an instance of class with dictionary dict without calling the `__init__()` constructor. Note that there are no guarantees that the object will be in a consistent state.

`instancemethod` (function, instance, class)
  This function will return a method object, bound to instance, or unbound if instance is `None`. function must be callable, and instance must be an instance object or `None`.

`function` (code, globals[, name[argdefs]])
  Returns a (Python) function with the given code and globals. If name is given, it must be a string or `None`. If it is a string, the function will have the given name, otherwise the function name will be taken from `code.co_name`. If argdefs is given, it must be a tuple and will be used to the determine the default values of parameters.

`code` (argcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab)
  This function is an interface to the `PyCode_New()` C function.

`module` (name)
  This function returns a new module object with name name. name must be a string.

`classobj` (name, baseclasses, dict)
  This function returns a new class object, with name name, derived from baseclasses (which should be a tuple of classes) and with namespace dict.