バージョン 2.6 で撤廃: new モジュールは Python 3.0 で削除されました。 代わりに、 types モジュールのクラスを利用してください。
new モジュールはインタプリタオブジェクト作成関数へのインターフェイスを与えます。新しいオブジェクトを”魔法を使ったように”作り出す必要がある、通常の作成関数が使えないときに、これは主にマーシャル型関数で使われます。このモジュールはインタプリタへの低レベルインターフェイスを提供します。したがって、このモジュールを使うときには注意しなければなりません。 オブジェクトが利用される時にインタプリタをクラッシュさせるような引数を与えることもできてしまいます。
new モジュールは次の関数を定義しています:
この関数は __init__() コンストラクタを呼び出さずに辞書 dict をもつ class のインスタンスを作り出します。 dict が省略されるか、 None である場合は、新しいインスタンスのために新しい空の辞書が作られます。オブジェクトがいつもと同じ状態であるという保証はないことに注意してください。
この関数は instance に束縛されたメソッドオブジェクトか、あるいは instance が None の場合に束縛されていないメソッドオブジェクトを返します。 function は呼び出し可能でなければなりません。
与えられたコードとグローバル変数をもつ(Python)関数を返します。 name を与えるならば、文字列か None でなければならない。文字列の場合は、関数は与えられた名前をもつ。そうでなければ、関数名は code.co_name から取られる。 argdefs を与える場合はタプルでなければならず、パラメータのデフォルト値を決めるために使われます。 closure を与える場合は None または名前を code.co_freevars に束縛するセルオブジェクトのタプルである必要があります。
)が与えられていると、
この関数は PyCode_New() というC関数へのインターフェイスです。
この関数は name という名前の新しいモジュールオブジェクトを返します。 name は文字列でなければならない。省略可能な doc 引数はどんな型でもよい。
この関数は新しいクラスオブジェクトを返します。そのクラスオブジェクトは(クラスのタプルであるべき)*baseclasses* から派生し、名前空間 dict を持ち、 name という名前です。