python 类型提示

在 Python 中,类型提示可以用来指定函数或方法的参数和返回值的数据类型,从而提高代码的可读性和可维护性。下面是常见的 Python 类型提示:

类型注解

使用 : 和类型名称来指定变量的类型

# 指定变量 x 的类型为 int
x: int = 5

# 指定函数参数和返回值类型
def add(x: int, y: int) -> int:
    return x + y

这段代码示例展示了如何使用类型注解来指定变量的类型以及函数的参数和返回值类型。在第一行代码中,我们使用 : 符号将变量名和类型名称分隔开来,从而指定变量 x 的类型为 int。在第二行代码中,我们使用同样的方式来指定函数 add 的两个参数 xy 的类型为 int,以及函数的返回值类型也是 int。这些类型注解可以让开发人员更容易地理解代码的作用和输入输出数据的类型。

类型提示

使用 typing 模块中的类型定义,例如:

# 使用 typing 中的 List 类型定义
from typing import List

# 指定函数参数和返回值类型
def process_items(items: List[str]) -> List[str]:
    processed_items = [item.upper() for item in items]
    return processed_items

这段代码示例展示了如何使用 Type Hints 来指定函数的参数和返回值类型。在第一行代码中,我们从 typing 模块中导入了 List 类型定义,用于定义类似于数组的数据结构。然后,在函数 process_items 的参数中,我们使用 List[str] 来指定函数参数的类型,这意味着该函数期望一个字符串类型的数组作为输入。在函数的返回值类型中,我们同样使用 List[str] 来指定函数返回值的类型是一个字符串类型的数组,这意味着该函数将会返回一个经过处理的字符串数组。

约束类型

使用 typing 模块中的约束类型,例如:'

# 使用 typing 中的 Union 约束类型
from typing import Union

# 指定函数参数的类型为 int 或 float
def process_value(value: Union[int, float]) -> str:
    return str(value)

这段代码示例展示了如何使用约束类型(Constrained Types),在这个例子中我们使用 Union 类型来限制函数 process_value 的参数类型。使用 Union[int, float] 来指定传入的参数值只能是整数或者浮点数,并且函数返回值类型是字符串(str)。这意味着该函数会将传入的数字类型的参数转换成字符串类型并返回。

可调用类型

# 使用 Callable 类型指定函数类型
from typing import Callable

# 定义具有 Callable 类型的函数参数
def process_items(items: List[str], callback: Callable[[str], None]):
    for item in items:
        callback(item)

这段代码示例展示了如何使用 Callable 类型,用于定义具有回调函数的函数参数。在这个例子中,我们先从 typing 模块中导入 Callable 类型,用于定义回调函数的数据类型。然后,我们定义了一个函数 process_items,该函数接受两个参数:一个字符串类型的列表 items 和一个回调函数 callback。使用 Callable[[str], None] 来指定回调函数类型,即函数只接受一个字符串类型的参数并且没有返回值(返回值类型为 None)。在函数体中,我们使用 for 循环遍历字符串数组 items,并将每个字符串都传递给 callback 函数进行处理。