このモジュールは標準のPythonインタプリタで使われているオブジェクト の型について、名前を定義しています(拡張モジュールで定義されている型を除 く)。このモジュールは以下に列挙している以外の名前をエクスポートしないの で、"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)
このモジュールは以下の名前を定義しています。
Noneの型です。
TrueとFalseの型です。これは組み込み関数の
bool()のエイリアスです。
1)。
1L)。
1.0)。
1.0j)。
Pythonが複素数のサポートなしでコンパイルされていた場合には
定義されません。
'Spam')。
u'Spam')。
Pythonがユニコードのサポートなしでコンパイルされていた場合には
定義されません。
(1, 2, 3, 'Spam'))。
[0, 1, 2, 3])。
{'Bacon': 1, 'Ham': 0})。
DictTypeの別名です。
FunctionTypeの別名です。
MethodTypeの別名です。
BuiltinFunctionの別名です。
sys.stdoutのようなopenされたファイルオブジェクトの型です。
Ellipsisの型です。
sys.exc_tracebackに含まれるようなトレースバックオブジェクトの型です。
tbのtb.tb_frameなどです。
StringTypeと
UnicodeTypeを含むシーケンスです。
UnicodeTypeは実行中の版のPythonに含まれている場合にだけ含まれるの
で、2つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。
例:
isinstance(s, types.StringTypes).
バージョン 2.2 で 新たに追加 された仕様です。