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

ソースコード: Lib/types.py


このモジュールは標準の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

boolTrueFalse の型です。これは組み込みの 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 のサポートなしでコンパイルされていた場合には定義されません。組み込みの 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

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

types.BufferType

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

types.DictProxyType

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

types.NotImplementedType

NotImplemented の型です。

types.GetSetDescriptorType

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

バージョン 2.5 で追加.

types.MemberDescriptorType

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

CPython 実装の詳細: Pythonの他の実装では、この型は GetSetDescriptorType と同じかもしれません。

バージョン 2.5 で追加.

types.StringTypes

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

バージョン 2.2 で追加.