内置类型(Built-in)

本章介绍一些常用的内置类型。我们稍后将涵盖许多其他类型。

简单类型

以下是一些常见内置类型的示例:

类型

描述

int

整数

float

浮点数

bool

布尔值( int 的子类)

str

文本,unicode 代码点的序列

bytes

8 位字符串,字节值的序列

object

任意对象( object 是常见的基类)

所有内置类都可以用作类型。

任意类型

如果找不到合适的类型来表示某个值,您始终可以退回到 Any

类型

描述

Any

动态类型值,具有任意类型

类型 Anytyping 模块中定义。有关更多详细信息,请参见 动态类型代码(Dynamically)

泛型类型

在 Python 3.9 及更高版本中,内置集合类型对象支持索引:

类型

描述

list[str]

str 对象的列表

tuple[int, int]

包含两个 int 对象的元组( tuple[()] 是空元组)

tuple[int, ...]

包含任意数量的 int 对象的元组

dict[str, int]

str 键到 int 值的字典

Iterable[int]

包含整数的可迭代对象

Sequence[bool]

布尔值序列(只读)

Mapping[str, int]

str 键到 int 值的映射(只读)

type[C]

C 的类型对象( C 是类/类型变量/类型的联合)

类型 dict 是一个 泛型 类,通过 [...] 中的类型参数表示。例如,dict[int, str] 是一个从整数到字符串的字典,dict[Any, Any] 是一个动态类型(任意)值和键的字典。list 是另一个泛型类。

IterableSequenceMapping 是与 Python 协议相对应的泛型类型。例如,当期待 Iterable[str]Sequence[str] 时,str 对象或 list[str] 对象都是有效的。 您可以从 collections.abc 导入它们,而不是在 Python 3.9 中从 typing 导入。

有关详细信息,包括如何在 Python 3.7 和 3.8 中使用这些类型进行注释,请参见 使用泛型内置类型

如果您需要支持 Python 3.8 及更早版本,则需要使用在 typing 中定义的以下遗留类型:

类型

描述

List[str]

str 对象的列表

Tuple[int, int]

包含两个 int 对象的元组( Tuple[()] 是空元组)

Tuple[int, ...]

包含任意数量的 int 对象的元组

Dict[str, int]

str 键到 int 值的字典

Iterable[int]

包含整数的可迭代对象

Sequence[bool]

布尔值序列(只读)

Mapping[str, int]

str 键到 int 值的映射(只读)

Type[C]

C 的类型对象( C 是类/类型变量/类型的联合)

List 是内置类型 list 的别名,支持索引( dict/Dicttuple/Tuple 也是如此)。

请注意,尽管 IterableSequenceMapping 看起来与在 collections.abc 中定义的抽象基类相似(以前是 collections ),但它们并不完全相同,因为后者在 Python 3.9 之前不支持索引。