Python 中用T = TypeVar(“T“)这个语法定义一个“类型变量”,属于类型提示系统的一部分

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)检查类型一致性,避免类型错误。

相关推荐
oceanstonetree3 分钟前
用cosyvoice批量把生成有声书
开发语言·python
java1234_小锋5 分钟前
TensorFlow2 Python深度学习 - 循环神经网络(GRU)示例
python·深度学习·gru·tensorflow2
王六岁28 分钟前
# 🐍 前端开发 0 基础学 Python 入门指南: Python 元组和映射类型深入指南
前端·javascript·python
王六岁32 分钟前
# 🐍 前端开发 0 基础学 Python 入门指南:常用的数据类型和列表
前端·javascript·python
南枝异客33 分钟前
查找算法-顺序查找
python·算法
花开花富贵38 分钟前
不敢去表白?来用代码画♥
python
人间乄惊鸿客1 小时前
python-day8
开发语言·python
Mrliu__1 小时前
Python数据结构(七):Python 高级排序算法:希尔 快速 归并
数据结构·python·排序算法
C嘎嘎嵌入式开发1 小时前
(22)100天python从入门到拿捏《【网络爬虫】网络基础与HTTP协议》
网络·爬虫·python
zzzyulin2 小时前
huggingface transformers调试问题--加载本地路径模型时pdb断点消失
python·transformer