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 版本加入。