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 で追加.