前言
利用typing模块可以让代码更加专业,增加代码的可读性和可维护性。
一、主要用途
1. 类型注解:
typing 模块定义了许多类型注解,比如 List, Dict, Tuple, Set, Optional, Union, TypeVar, Callable 等。
这些注解可以帮助开发者更清楚地表达函数的参数类型和返回类型。
2. 类型提示:
类型注解可以用作类型提示,使 IDE 和编辑器能够更好地理解代码结构,从而提供更好的代码补全和错误检测功能。
类型提示还可以帮助其他开发者更快地理解代码的功能和用法。
3. 静态类型检查:
类型注解可以与第三方类型检查工具(如 Mypy)一起使用,以在运行之前检查代码中的类型错误。
这有助于减少运行时错误,并提高代码质量。
二、typing 模块中的一些常用类型
1. List:
用于表示列表类型,例如 List[int]
表示整数列表。
2. Dict:
用于表示字典类型,例如 Dict[str, int]
表示键为字符串
、值为整数的字典
。
3. Tuple:
用于表示元组类型,例如 Tuple[int, str]
表示第一个
元素为整数、第二个
元素为字符串的元组。
4. Optional:
用于表示一个变量可以是某个类型也可以是 None,例如 Optional[str]
表示变量可以是字符串
或 None
。 例如:prompt: Optional[str] = None:
表示该参数可以是一个字符串 (str) 或者 None。`默认值: 默认值为 None
5. Union:
用于表示一个变量可以是多个类型之一,例如 Union[str, int]
表示变量可以是字符串
或整数
。
6. TypeVar:
用于定义泛型类型变量,可以用于泛型函数和类。
7. Callable:
用于表示函数或方法的类型,例如 Callable[[int, int], int]
表示接受两个整数参数并返回一个整数的函数。
三、如何导入 typing 模块
要使用 typing 模块中的类型注解,从 typing 模块
中导入所需的类型。
例如:
from typing import List, Dict, Tuple, Optional, Union
四、代码示例
1. 一个函数
chat(self,
prompt: Optional[str] = None,
messages: Optional[List[Dict]] = None,
stop: Optional[List[str]] = None,
stream: bool = False,
**kwargs) -> Union