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
型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。CPython 実装の詳細: Pythonの他の実装では、この型は
GetSetDescriptorType
と同じかもしれません。バージョン 2.5 で追加.
-
types.
StringTypes
¶ 文字列型のチェックを簡単にするための
StringType
とUnicodeType
を含むシーケンスです。UnicodeType
は実行中の版の Python に含まれている場合にだけ含まれるので、2 つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。例:isinstance(s, types.StringTypes)
.バージョン 2.2 で追加.