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.ComplexType¶ 複素数の型です (e.g.
1.0j)。 Python が複素数のサポートなしでコンパイルされていた場合には定義されません。
- 
types.UnicodeType¶ Unicode 文字列の型です (e.g.
u'Spam')。 Python が Unicode のサポートなしでコンパイルされていた場合には定義されません。組み込みのUnicodeのエイリアスになります。
- 
types.ListType¶ リストの型です (e.g.
[0, 1, 2, 3])。組み込みのlistのエイリアスになります。
- 
types.DictionaryType¶ DictTypeの別名です。
- 
types.ClassType¶ ユーザー定義の、旧形式クラスの型です。
- 
types.InstanceType¶ ユーザー定義の旧形式クラスのインスタンスの型です。
- 
types.MethodType¶ ユーザー定義のクラスのインスタンスのメソッドの型です。
- 
types.UnboundMethodType¶ MethodTypeの別名です。
- 
types.BuiltinFunctionType¶ - 
types.BuiltinMethodType¶ len()やsys.exit()のような組み込み関数や、組み込み型のメソッドの型です。 (ここでは、"組み込み"という単語を、"C で書かれた" という意味で使っています)
- 
types.ModuleType¶ モジュールの型です。
- 
types.EllipsisType¶ Ellipsisの型です。
- 
types.TracebackType¶ sys.exc_tracebackに含まれるようなトレースバックオブジェクトの型です。
- 
types.FrameType¶ フレームオブジェクトの型です。トレースバックオブジェクト
tbのtb.tb_frameなどです。
- 
types.DictProxyType¶ TypeType.__dict__のような dict へのプロキシ型です。
- 
types.NotImplementedType¶ NotImplementedの型です。
- 
types.GetSetDescriptorType¶ FrameType.f_localsやarray.array.typecodeのような、拡張モジュールにおいてPyGetSetDefによって定義されたオブジェクトの型です。この型はオブジェクト属性のディスクリプタとして利用されます。property型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。バージョン 2.5 で追加.
- 
types.MemberDescriptorType¶ datetime.timedelta.daysのような、拡張モジュールにおいてPyMemberDefによって定義されたオブジェクトの型です。この型は、標準の変換関数を利用するような、Cのシンプルなデータメンバで利用されます。property型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。Pythonの他の実装では、この型は
GetSetDescriptorTypeと同じかもしれません。バージョン 2.5 で追加.
- 
types.StringTypes¶ 文字列型のチェックを簡単にするための
StringTypeとUnicodeTypeを含むシーケンスです。UnicodeTypeは実行中の版の Python に含まれている場合にだけ含まれるので、2 つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。例:isinstance(s, types.StringTypes).バージョン 2.2 で追加.
