8.16. "new" --- ランタイム内部オブジェクトの作成
************************************************

バージョン 2.6 で非推奨: "new" モジュールは Python 3 で削除されました
。代わりに、 "types" モジュールのクラスを利用してください。

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

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

new.instance(class[, dict])

   この関数は "__init__()" コンストラクタを呼び出さずに辞書 *dict* を
   もつ *class* のインスタンスを作り出します。 *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)

   この関数は "PyCode_New()" という C 関数へのインターフェイスです。

new.module(name[, doc])

   この関数は *name* という名前の新しいモジュールオブジェクトを返しま
   す。 *name* は文字列でなければなりません。省略可能な *doc* 引数は任
   意の型を取ることができます。

new.classobj(name, baseclasses, dict)

   この関数は新しいクラスオブジェクトを返します。そのクラスオブジェク
   トは (クラスのタプルであるべき) *baseclasses* から派生し、名前空間
   *dict* を持ち、 *name* という名前です。
