前のトピックへ

9.12. UserDict — 辞書オブジェクトのためのクラスラッパー

次のトピックへ

9.16. new — ランタイム内部オブジェクトの作成

このページ

9.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

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 のエイリアスになります。

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 型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。 Pythonの他の実装では、この型は GetSetDescriptorType と同一かもしれません。

バージョン 2.5 で追加.

types.StringTypes

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

バージョン 2.2 で追加.