types --- 組み込み型の名前¶
このモジュールは、標準の Python インタプリタが使用するものの組み込み (builtins) としては公開されていないいくつかのオブジェクト型 (関数やジェネレータの型など) に対する名前を定義し、あわせて動的なクラス構築のための少数のヘルパーを提供します。
これは CPython の types モジュールのサブセットの MicroPython 移植版です。MicroPython では有用な表現を持たないいくつかの型エイリアス (CodeType、MappingProxyType、SimpleNamespace、TracebackType、FrameType、GetSetDescriptorType、MemberDescriptorType) は None のプレースホルダとして公開されています。これらを参照するだけのコードは引き続きインポートできますが、isinstance() で実際のオブジェクトに一致することはありません。
利用可否: このモジュールは micropython-lib の一部です。デフォルトで含まれているのは OpenMV N6 と OpenMV AE3 のみです。その他の OpenMV Cam では mip でインストールする (またはカスタムファームウェアに組み込む) ことができます。パッケージ管理 を参照してください。
型エイリアス¶
- types.LambdaType: type¶
lambda式の型です。FunctionTypeと同一です。
- types.BuiltinFunctionType: type¶
len()やsys.exit()などの組み込み関数の型です。
- types.BuiltinMethodType: type¶
組み込み型のバウンドメソッド (例:
[].append) の型です。BuiltinFunctionTypeと同一です。
関数¶
- 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)を返します。namespace はmetaclass.__prepare__が定義されていればそれを呼び出した結果、定義されていなければ空の辞書です。kwds は入力のコピーから"metaclass"エントリを削除したものです。