5.16 new -- ランタイム内部オブジェクトの作成

newモジュールはインタプリタオブジェクト作成関数へのインターフェイスを与えます。新しいオブジェクトを``魔法を使ったように''作り出す必要がある、通常の作成関数が使えないときに、これは主にマーシャル型関数で使われます。このモジュールはインタプリタへの低レベルインターフェイスを提供します。したがって、このモジュールを使うときには注意しなければなりません。 オブジェクトが利用される時にインタプリタをクラッシュさせるような引数を 与えることもできてしまいます。

newモジュールは次の関数を定義しています:

instance( class[, dict])
この関数は__init__()コンストラクタを呼び出さずに辞書dictをもつclassのインスタンスを作り出します。dictが省略されるか、Noneである場合は、新しいインスタンスのために新しい空の辞書が作られます。オブジェクトがいつもと同じ状態であるという保証はないことに注意してください。

instancemethod( function, instance, class)
この関数はinstanceに束縛されたメソッドオブジェクトか、あるいはinstanceNoneの場合に束縛されていないメソッドオブジェクトを返します。functionは呼び出し可能でなければなりません。

function( code, globals[, name[, argdefs[, closure]]])
与えられたコードとグローバル変数をもつ(Python)関数を返します。nameを与えるならば、文字列かNoneでなければならない。文字列の場合は、関数は与えられた名前をもつ。そうでなければ、関数名はcode.co_nameから取られる。argdefsを与える場合はタプルでなければならず、パラメータのデフォルト値を決めるために使われます。 closure を与える場合はNoneまたは名前をcode.co_freevarsに束縛するセルオブジェクトのタプルである必要があります。

)が与えられていると、

code( argcount, nlocals, stacksize, flags, codestring, constants, names, varnames, filename, name, firstlineno, lnotab)
この関数はPyCode_New()というC関数へのインターフェイスです。

module( name[, doc])
この関数はnameという名前の新しいモジュールオブジェクトを返します。nameは文字列でなければならない。 省略可能な doc 引数はどんな型でもよい。

classobj( name, baseclasses, dict)
この関数は新しいクラスオブジェクトを返します。そのクラスオブジェクトは(クラスのタプルであるべき)baseclassesから派生し、名前空間dictを持ち、nameという名前です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。