6. 类型注解
什么是类型注解
类型注解是开发者为变量、类属性、函数的形参或返回值指定预期的类型。
- 类型注解是可选的而不是 Python 的强制要求,但它们对 静态类型检查器 很有用处。 它们还能协助 IDE 实现代码补全与重构。
示例
home: str = '地球'
def sum_two_numbers(a: int, b: int) -> int:
return a + b
类型注解的种类:
- 变量标注。
- 属性标注。
- 函数标注。
变量或类属性的标注
示例
# 变量标注和类属性标注示例
count: int = 0
class Dog:
home: str = '地球'
count = 3.14
print(count)
print(Dog.home)
函数标注
针对函数形参或返回值的标注。
示例
# 函数标注示例
def sum_two_numbers(a: int, b: int) -> int:
return a + b
print(sum_two_numbers(100, 200))
def add_two_element(x: int | str, y: int | str) -> int | str:
return x + y
print(add_two_element(1, 2))
print(add_two_element('ABC', 'DEF'))
print(add_two_element(3.14, 0.618))
typing — 对类型提示的支持
模块:typing
作用
用于支持复杂类型的类型注解(Type Hints)
typing 中定义的常用类型
类型/语法
说明
int, str, bool
基础类型(直接使用 Python 内置类型)。
List[int]
列表,元素为 int 类型
Dict[str, int]
字典,键为 str,值为 int。
Tuple[int, str]
元组,固定长度和类型。
Union[int, str]
允许 int 或 str 类型(
Optional[str]
等价于 Union[str, None],表示可能为 None。
Callable[[int], str]
函数类型,参数为 int,返回 str。
Any
任意类型(禁用类型检查)。
示例
# typing 模块中定义的类型 示例
from typing import List
def mysum(data: List[int]) -> int:
return sum(data)
lst = [1, 2, 3, 4, 5]
result = mysum(lst)
print('result:', result)