### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 8. データ型 »

# 8.16. `new` — ランタイム内部オブジェクトの作成

バージョン 2.6 で撤廃: `new` モジュールは Python 3.0 で削除されました。 代わりに、 `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 という名前です。

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 8. データ型 »