types --- 内置类型的名称¶
本模块为标准 Python 解释器使用、但未作为内置项暴露的一些对象类型定义了名称(例如函数或生成器的类型),同时还提供了少量用于动态构造类的辅助函数。
这是 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。
返回一个三元组
(metaclass, namespace, kwds),其中 namespace 是在已定义metaclass.__prepare__时调用其结果,否则为空字典;kwds 是输入的副本,并移除了任何"metaclass"项。