T = TypeVar("T")
这一语法规则定义了一个泛型类型变量 T,用于标记"某种类型",让你可以写出既通用又类型安全的代码。
- TypeVar("T") 会创建一个名为 T 的类型占位符,这个占位符可以在后续的函数、类或方法中用作泛型参数。
- 泛型(Generic)允许你编写对类型不固定的代码,让代码既能接受 int,也能接受 str,甚至自定义类型,而不用为每种类型写重复的代码。
举个简单的例子
假设你要写一个函数,它接受一个参数并返回相同的参数类型,这时可以这样写:
python
from typing import TypeVar
# 定义一个类型变量 T
T = TypeVar("T")
def identity(x: T) -> T:
return x
# 调用时:
result_int = identity(5) # result_int 被推导为 int,值为 5
result_str = identity("hello") # result_str 被推导为 str,值为 "hello"
在这个例子中:
- 当你传入一个整数 5 时,T 就被推导为 int,函数返回的类型也是 int。
- 当你传入字符串 "hello" 时,T 就被推导为 str,函数返回的类型也是 str。
这种写法不仅使得代码更灵活,而且能通过静态类型检查工具(例如 mypy)检查类型一致性,避免类型错误。