8.15. types — 組み込み型の名前 — Python 2.7ja1 documentation

### ナビゲーション

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

# 8.15. `types` — 組み込み型の名前

このモジュールは標準のPythonインタプリタで使われているオブジェクトの型について、名前を定義しています(拡張モジュールで定義されている型を除く)。このモジュールは `listiterator` 型のようなプロセス中に例外をふくまないので、 `from types import *` のように使っても安全です。このモジュールの将来のバージョンで追加される名前は、 `Type` で終わる予定です。

関数での典型的な利用方法は、以下のように引数の型によって異なる動作をする場合です:

    from types import *
    def delete(mylist, item):
        if type(item) is IntType:
           del mylist[item]
        else:
           mylist.remove(item)

Python 2.2以降では、 `int()` や `str()` のようなファクトリ関数は、型の名前となりましたので、 `types` を使用する必要はなくなりました。上記のサンプルは、以下のように記述する事が推奨されています。

    def delete(mylist, item):
        if isinstance(item, int):
           del mylist[item]
        else:
           mylist.remove(item)

このモジュールは以下の名前を定義しています。

`types.` `NoneType`

  `None` の型です。

`types.` `TypeType`

  typeオブジェクトの型です (`type()` などによって返されます)。組み込みの `type` のエイリアスになります。

`types.` `BooleanType`

  `bool` の `True` と `False` の型です。これは組み込みの `bool` のエイリアスです。

  バージョン 2.3 で追加.

`types.` `IntType`

  整数の型です(e.g. `1`)。組み込みの `int` のエイリアスになります。

`types.` `LongType`

  長整数の型です(e.g. `1L`)。組み込みの `long` のエイリアスになります。

`types.` `FloatType`

  浮動小数点数の型です(e.g. `1.0`)。組み込みの `float` のエイリアスになります。

`types.` `ComplexType`

  複素数の型です(e.g. `1.0j`)。 Pythonが複素数のサポートなしでコンパイルされていた場合には定義されません。

`types.` `StringType`

  文字列の型です(e.g. `'Spam'`)。組み込みの `str` のエイリアスになります。

`types.` `UnicodeType`

  Unicode文字列の型です(e.g. `u'Spam'`)。 Pythonがユニコードのサポートなしでコンパイルされていた場合には定義されません。組み込みの `Unicode` のエイリアスになります。

`types.` `TupleType`

  タプルの型です(e.g. `(1, 2, 3, 'Spam')`)。組み込みの `tuple` のエイリアスになります。

`types.` `ListType`

  リストの型です(e.g. `[0, 1, 2, 3]`)。組み込みの `list` のエイリアスになります。

`types.` `DictType`

  辞書の型です(e.g. `{'Bacon': 1, 'Ham': 0}`)。組み込みの `dict` のエイリアスになります。

`types.` `DictionaryType`

  `DictType` の別名です。

`types.` `FunctionType`
`types.` `LambdaType`

  ユーザー定義の関数または `lambda` 式によって作成された関数の型です。

`types.` `GeneratorType`

  ジェネレータ(generator)関数の呼び出しによって生成されたイテレータオブジェクトの型です。

  バージョン 2.2 で追加.

`types.` `CodeType`

  `compile()` 関数などによって返されるコードオブジェクトの型です。

`types.` `ClassType`

  ユーザー定義の、古いスタイルのクラスの型です。

`types.` `InstanceType`

  ユーザー定義のクラスのインスタンスの型です。

`types.` `MethodType`

  ユーザー定義のクラスのインスタンスのメソッドの型です。

`types.` `UnboundMethodType`

  `MethodType` の別名です。

`types.` `BuiltinFunctionType`
`types.` `BuiltinMethodType`

  `len()` や `sys.exit()` のような組み込み関数や、組み込み型のメソッドの型です。 (ここでは、”組み込み”という単語を、”Cで書かれた”という意味で使っています)

`types.` `ModuleType`

  モジュールの型です。

`types.` `FileType`

  `sys.stdout` のようなopenされたファイルオブジェクトの型です。組み込みの `file` のエイリアスになります。

`types.` `XRangeType`

  `xrange()` 関数によって返されるrangeオブジェクトの型です。組み込みの `xrange` のエイリアスになります。

`types.` `SliceType`

  `slice()` 関数によって返されるオブジェクトの型です。組み込みの `slice` のエイリアスになります。

`types.` `EllipsisType`

  `Ellipsis` の型です。

`types.` `TracebackType`

  `sys.exc_traceback` に含まれるようなトレースバックオブジェクトの型です。

`types.` `FrameType`

  フレームオブジェクトの型です。トレースバックオブジェクト `tb` の `tb.tb_frame` などです。

`types.` `BufferType`

  `buffer()` 関数によって作られるバッファオブジェクトの型です。

`types.` `DictProxyType`

  `TypeType.__dict__` のような dictへのプロキシ型です。

`types.` `NotImplementedType`

  `NotImplemented` の型です。

`types.` `GetSetDescriptorType`

  `FrameType.f_locals` や `array.array.typecode` のような、拡張モジュールにおいて `PyGetSetDef` によって定義されたオブジェクトの型です。この型はオブジェクト属性のディスクリプタとして利用されます。 `property` 型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。

  バージョン 2.5 で追加.

`types.` `MemberDescriptorType`

  `datetime.timedelta.days` のような、拡張モジュールにおいて `PyMemberDef` によって定義されたオブジェクトの型です。この型は、標準の変換関数を利用するような、Cのシンプルなデータメンバで利用されます。 `property` 型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。

  CPython implementation detail: Pythonの他の実装では、この型は `GetSetDescriptorType` と同一かもしれません。

  バージョン 2.5 で追加.

`types.` `StringTypes`

  文字列型のチェックを簡単にするための `StringType` と `UnicodeType` を含むシーケンスです。 `UnicodeType` は実行中の版のPythonに含まれている場合にだけ含まれるので、2つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。例: `isinstance(s, types.StringTypes)`.

  バージョン 2.2 で追加.

### ナビゲーション

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