types --- 組み込み型の名前

このモジュールは、標準の Python インタプリタが使用するものの組み込み (builtins) としては公開されていないいくつかのオブジェクト型 (関数やジェネレータの型など) に対する名前を定義し、あわせて動的なクラス構築のための少数のヘルパーを提供します。

これは CPython の types モジュールのサブセットの MicroPython 移植版です。MicroPython では有用な表現を持たないいくつかの型エイリアス (CodeTypeMappingProxyTypeSimpleNamespaceTracebackTypeFrameTypeGetSetDescriptorTypeMemberDescriptorType) は None のプレースホルダとして公開されています。これらを参照するだけのコードは引き続きインポートできますが、isinstance() で実際のオブジェクトに一致することはありません。

利用可否: このモジュールは micropython-lib の一部です。デフォルトで含まれているのは OpenMV N6 と OpenMV AE3 のみです。その他の OpenMV Cam では mip でインストールする (またはカスタムファームウェアに組み込む) ことができます。パッケージ管理 を参照してください。

型エイリアス

types.FunctionType: type

ユーザー定義の関数および def 文によって生成されるオブジェクトの型です。

types.LambdaType: type

lambda 式の型です。FunctionType と同一です。

types.GeneratorType: type

ジェネレータ関数によって生成されるジェネレータ・イテレータオブジェクトの型です。

types.MethodType: type

ユーザー定義のクラスインスタンスのバウンドメソッドの型です。

types.BuiltinFunctionType: type

len()sys.exit() などの組み込み関数の型です。

types.BuiltinMethodType: type

組み込み型のバウンドメソッド (例: [].append) の型です。BuiltinFunctionType と同一です。

types.ModuleType: type

インポートされたモジュールの型です。

types.CodeType: None

CPython の code オブジェクト型のプレースホルダです。この実装では常に None です。

types.MappingProxyType: None

CPython で type.__dict__ が返す読み取り専用のマッピングプロキシ型のプレースホルダです。この実装では常に None です。

types.SimpleNamespace: None

CPython の types.SimpleNamespace クラスのプレースホルダです。この実装では常に None です。

types.TracebackType: None

トレースバックオブジェクトの型のプレースホルダです。この実装では常に None です。

types.FrameType: None

フレームオブジェクトの型のプレースホルダです。この実装では常に None です。

types.GetSetDescriptorType: None

拡張型によって定義される属性ディスクリプタの型のプレースホルダです。この実装では常に None です。

types.MemberDescriptorType: None

拡張型によって定義されるスロットディスクリプタの型のプレースホルダです。この実装では常に None です。

関数

types.new_class(name: str, bases: tuple = (), kwds: dict | None = None, exec_body: Callable[[dict], None] | None = None) type

PEP 3115 に準拠した class 文を模倣する方法で、クラスオブジェクトを動的に生成します。

  • name は新しいクラスの名前です。

  • bases は基底クラスのタプルです。

  • kwds はメタクラスに渡すキーワード引数の辞書です。"metaclass" キーが存在する場合、それが直接メタクラスとして選択されます。

  • exec_body は省略可能な呼び出し可能オブジェクトで、新たに準備されたクラス名前空間を引数に呼び出されます。これは新しいクラスの属性をその名前空間に設定する必要があります。

新しく構築されたクラスを返します。

types.prepare_class(name: str, bases: tuple = (), kwds: dict | None = None) tuple[type, dict, dict]

新しいクラスのために適切なメタクラスを計算し、名前空間を準備します。

  • name は作成しようとしているクラスの名前です。

  • bases は基底クラスのタプルです。

  • kwds はキーワード引数の辞書です。"metaclass" キーが存在する場合、それは返される kwds から削除され、メタクラスとして使用されます。存在しない場合は bases[0] のメタクラスが使用され、それも無い場合は type にフォールバックします。

3 要素タプル (metaclass, namespace, kwds) を返します。namespacemetaclass.__prepare__ が定義されていればそれを呼び出した結果、定義されていなければ空の辞書です。kwds は入力のコピーから "metaclass" エントリを削除したものです。