ソースコード: 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
(原文)
bool
の True
と False
の型です。これは組み込みの bool
のエイリアスです。
-
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) 関数の呼び出しによって生成されたイテレータオブジェクトの型です。
-
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
(原文)
フレームオブジェクトの型です。トレースバックオブジェクト tb
の tb.tb_frame
などです。
-
types.
BufferType
(原文)
buffer()
関数によって作られるバッファオブジェクトの型です。
-
types.
DictProxyType
(原文)
TypeType.__dict__
のような dict へのプロキシ型です。
-
types.
NotImplementedType
(原文)
NotImplemented
の型です。
-
types.
GetSetDescriptorType
(原文)
FrameType.f_locals
や array.array.typecode
のような、拡張モジュールにおいて PyGetSetDef
によって定義されたオブジェクトの型です。この型はオブジェクト属性のディスクリプタとして利用されます。 property
型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。
-
types.
MemberDescriptorType
(原文)
datetime.timedelta.days
のような、拡張モジュールにおいて PyMemberDef
によって定義されたオブジェクトの型です。この型は、標準の変換関数を利用するような、Cのシンプルなデータメンバで利用されます。 property
型と同じ目的を持った型ですが、こちらは拡張モジュールで定義された型のためのものです。
CPython 実装の詳細: Pythonの他の実装では、この型は GetSetDescriptorType
と同じかもしれません。
-
types.
StringTypes
(原文)
文字列型のチェックを簡単にするための StringType
と UnicodeType
を含むシーケンスです。 UnicodeType
は実行中の版の Python に含まれている場合にだけ含まれるので、2 つの文字列型のシーケンスを使うよりこれを使う方が移植性が高くなります。例: isinstance(s, types.StringTypes)
.