8.15。 タイプ —組み込み型の名前
ソースコード: :source: `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.IntType
- 整数のタイプ(例:
1
); 組み込みの int のエイリアス。
- types.LongType
- 長整数のタイプ(例:
1L
); 組み込みの long のエイリアス。
- types.FloatType
- 浮動小数点数のタイプ(例:
1.0
); 組み込みの float のエイリアス。
- types.ComplexType
- 複素数のタイプ(例:
1.0j
)。 Pythonが複素数のサポートなしで構築された場合、これは定義されません。
- types.StringType
- 文字列のタイプ(例:
'Spam'
); 組み込みの str のエイリアス。
- types.UnicodeType
- Unicode文字列のタイプ(例:
u'Spam'
)。 PythonがUnicodeサポートなしでビルドされた場合、これは定義されません。 これは、組み込みの unicode のエイリアスです。
- types.TupleType
- タプルのタイプ(例:
(1, 2, 3, 'Spam')
); 組み込みのタプルのエイリアス。
- types.ListType
- リストのタイプ(例:
[0, 1, 2, 3]
); 組み込みのlist
のエイリアス。
- types.DictType
- 辞書の種類(例:
{'Bacon': 1, 'Ham': 0}
); 組み込みの dict のエイリアス。
- types.DictionaryType
DictType
の別名。
- types.FunctionType
types.LambdaType
- ユーザー定義関数のタイプと lambda 式によって作成された関数。
- types.GeneratorType
ジェネレーター-イテレーターオブジェクトのタイプ。ジェネレーター関数を呼び出すことによって生成されます。
バージョン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
などの開いているファイルオブジェクトのタイプ。 組み込みのファイルのエイリアス。
- 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 タイプと同じ目的ですが、拡張モジュールで定義されたクラス用です。バージョン2.5の新機能。
- types.MemberDescriptorType
datetime.timedelta.days
など、PyMemberDef
を使用して拡張モジュールで定義されているオブジェクトのタイプ。 このタイプは、標準の変換関数を使用する単純なCデータメンバーの記述子として使用されます。 property タイプと同じ目的ですが、拡張モジュールで定義されたクラス用です。バージョン2.5の新機能。
- types.StringTypes
StringType
とUnicodeType
を含むシーケンスは、文字列オブジェクトのチェックを容易にするために使用されます。 これを使用すると、実行中のバージョンのPythonでビルドされている場合にのみ、UnicodeType
が含まれるため、他の場所で構築された2つの文字列タイプのシーケンスを使用するよりも移植性が高くなります。 例:isinstance(s, types.StringTypes)
。バージョン2.2の新機能。