admin 2026-08-27 21:25:20 卡牌前沿

types— 内置类型的动态类型创建和命名¶

标准解释器类型¶

此模块为实现 Python 解释器所需的许多类型提供了名称。它特意避免包含一些在处理过程中偶然出现的类型,例如 listiterator 类型。

这些名称的典型用法是用于 isinstance() 或 issubclass() 检查。

如果您实例化任何这些类型,请注意签名可能在 Python 版本之间有所不同。

为以下类型定义了标准名称

types.NoneType¶

None 的类型。

在 3.10 版本加入。

types.FunctionType¶

types.LambdaType¶

用户定义函数和由 lambda 表达式创建的函数的类型。

引发 审计事件 function.__new__,参数为 code。

审计事件仅在直接实例化函数对象时发生,而不会在正常编译时引发。

types.GeneratorType¶

由生成器函数创建的 生成器-迭代器对象的类型。

types.CoroutineType¶

由 async def 函数创建的 协程 对象的类型。

在 3.5 版本加入。

types.AsyncGeneratorType¶

由异步生成器函数创建的 异步生成器-迭代器对象的类型。

在 3.6 版本加入。

class types.CodeType(**kwargs)¶

代码对象 的类型,例如由 compile() 返回的代码对象。

引发 审计事件 code.__new__,参数为 code, filename, name, argcount, posonlyargcount, kwonlyargcount, nlocals, stacksize, flags。

请注意,审计的参数可能与初始化器所需的名称或位置不匹配。审计事件仅在直接实例化代码对象时发生,而不会在正常编译时引发。

types.CellType¶

单元格对象的类型:此类对象用作函数的 闭包变量 的容器。

在 3.8 版本加入。

types.MethodType¶

用户定义类实例的方法的类型。

types.BuiltinFunctionType¶

types.BuiltinMethodType¶

像 len() 或 sys.exit() 这样的内置函数的类型,以及内置类的方法。(这里,“内置”指的是“用 C 语言编写”)。

types.WrapperDescriptorType¶

某些内置数据类型和基类(例如 object.__init__() 或 object.__lt__())的方法的类型。

在 3.7 版本加入。

types.MethodWrapperType¶

某些内置数据类型和基类的 *绑定* 方法的类型。例如,它是 object().__str__ 的类型。

在 3.7 版本加入。

types.NotImplementedType¶

NotImplemented 的类型。

在 3.10 版本加入。

types.MethodDescriptorType¶

某些内置数据类型的方法的类型,例如 str.join()。

在 3.7 版本加入。

types.ClassMethodDescriptorType¶

某些内置数据类型的 *未绑定* 类方法的类型,例如 dict.__dict__['fromkeys']。

在 3.7 版本加入。

class types.ModuleType(name, doc=None)¶

模块 的类型。构造函数接受要创建的模块的名称和可选的 文档字符串。

参见

模块对象文档提供了 ModuleType 实例上可找到的特殊属性的详细信息。

importlib.util.module_from_spec()使用 ModuleType 构造函数创建的模块,其许多特殊属性未设置或设置为默认值。module_from_spec() 提供了一种更可靠的方法来创建 ModuleType 实例,确保各种属性都设置得当。

types.EllipsisType¶

Ellipsis 的类型。

在 3.10 版本加入。

class types.GenericAlias(t_origin, t_args)¶

参数化泛型 的类型,例如 list[int]。

t_origin 应该是一个非参数化的泛型类,例如 list、tuple 或 dict。t_args 应该是一个 tuple(可能长度为 1)的类型,这些类型对 t_origin 进行参数化。

>>> from types import GenericAlias

>>> list[int] == GenericAlias(list, (int,))

True

>>> dict[str, int] == GenericAlias(dict, (str, int))

True

在 3.9 版本中新增。

3.9.2 版本发生变化: 此类型现在可以被子类化。

参见

泛型别名类型有关 types.GenericAlias 实例的深入文档

PEP 585 - 标准集合中的类型提示泛型引入 types.GenericAlias 类

class types.UnionType¶

联合类型表达式 的类型。

在 3.10 版本加入。

3.14 版本发生变化: 这现在是 typing.Union 的别名。

class types.TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)¶

回溯对象的类型,例如在 sys.exception().__traceback__ 中找到的类型。

有关可用属性和操作的详细信息以及动态创建回溯的指南,请参见语言参考。

types.FrameType¶

帧对象 的类型,例如如果 tb 是一个回溯对象,则在 tb.tb_frame 中找到的类型。

types.GetSetDescriptorType¶

在扩展模块中用 PyGetSetDef 定义的对象的类型,例如 FrameType.f_locals 或 array.array.typecode。此类型用作对象属性的描述符;它具有与 property 类型相同的目的,但适用于在扩展模块中定义的类。

types.MemberDescriptorType¶

在扩展模块中用 PyMemberDef 定义的对象的类型,例如 datetime.timedelta.days。此类型用作使用标准转换函数的简单 C 数据成员的描述符;它具有与 property 类型相同的目的,但适用于在扩展模块中定义的类。

此外,当使用 __slots__ 属性定义类时,对于每个槽位,一个 MemberDescriptorType 实例将作为类的属性添加。这允许槽位出现在类的 __dict__ 中。

CPython 实现细节: 在 Python 的其他实现中,此类型可能与 GetSetDescriptorType 相同。

class types.MappingProxyType(mapping)¶

映射的只读代理。它提供了一个映射条目的动态视图,这意味着当映射更改时,视图会反映这些更改。

在 3.3 版本加入。

3.9 版本发生变化: 已更新以支持 PEP 584 中的新联合 (|) 运算符,它只是委托给底层映射。

key in proxy

如果底层映射包含键 key,则返回 True,否则返回 False。

proxy[key]

返回底层映射中键为 key 的项。如果 key 不在底层映射中,则引发 KeyError。

iter(proxy)

返回底层映射键的迭代器。这是 iter(proxy.keys()) 的快捷方式。

len(proxy)

返回底层映射中的项数。

copy()¶

返回底层映射的浅拷贝。

get(key[, default])¶

如果 key 在底层映射中,则返回 key 对应的值,否则返回 default。如果未给出 default,则默认为 None,因此此方法永远不会引发 KeyError。

items()¶

返回底层映射项((key, value) 对)的新视图。

keys()¶

返回底层映射键的新视图。

values()¶

返回底层映射值的新视图。

reversed(proxy)

返回底层映射键的反向迭代器。

在 3.9 版本中新增。

hash(proxy)

返回底层映射的哈希值。

3.12 新版功能.

class types.CapsuleType¶

胶囊对象 的类型。

在 3.13 版本加入。