5.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)

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

NoneType
Noneの型です。

TypeType
typeオブジェクトの型です (type()などによって返 されます)。

BooleanType
boolTrueFalseの型です。これは組み込み関数の bool()のエイリアスです。

IntType
整数の型です(e.g. 1)。

LongType
長整数の型です(e.g. 1L)。

FloatType
浮動小数点数の型です(e.g. 1.0)。

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

StringType
文字列の型です(e.g. 'Spam')。

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

TupleType
タプルの型です(e.g. (1, 2, 3, 'Spam'))。

ListType
リストの型です(e.g. [0, 1, 2, 3])。

DictType
辞書の型です(e.g. {'Bacon': 1, 'Ham': 0})。

DictionaryType
DictTypeの別名です。

FunctionType
ユーザー定義の関数またはlambdaの型です。

LambdaType
FunctionTypeの別名です。

GeneratorType
ジェネレータ関数の呼び出しによって生成されたイテレータオブジェクトの型で す。 バージョン 2.2 で 新たに追加 された仕様です。

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

ClassType
ユーザー定義のクラスの型です。

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

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

UnboundMethodType
MethodTypeの別名です。

BuiltinFunctionType
len()sys.exit()のような組み込み関数の型です。

BuiltinMethodType
BuiltinFunctionの別名です。

ModuleType
モジュールの型です。

FileType
sys.stdoutのようなopenされたファイルオブジェクトの型です。

XRangeType
xrange()関数によって返されるrangeオブジェ クトの型です。

SliceType
slice()関数によって返されるオブジェクトの 型です。

EllipsisType
Ellipsisの型です。

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

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

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

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

NotImplementedType
NotImplementedの型です。

GetSetDescriptorType
FrameType.f_localsarray.array.typecode のような PyGetSetDef のある 拡張モジュールで定義されたオブジェクトの型です。 この定数は上のような拡張型がないPythonでは定義されません。 ポータブルなコードではhasattr(types, 'GetSetDescriptorType')を 使用してください。 バージョン 2.5 で 新たに追加 された仕様です。

MemberDescriptorType
datetime.timedelta.days のような PyMemberDefのある 拡張モジュールで定義されたオブジェクトの型です。 この定数は上のような拡張型がないPythonでは定義されません。 ポータブルなコードではhasattr(types, 'MemberDescriptorType')を 使用してください。 バージョン 2.5 で 新たに追加 された仕様です。

StringTypes
文字列型のチェックを簡単にするためのStringTypeUnicodeTypeを含むシーケンスです。 UnicodeTypeは実行中の版のPythonに含まれている場合にだけ含まれるの で、2つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。 例: isinstance(s, types.StringTypes). バージョン 2.2 で 新たに追加 された仕様です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。