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

相关推荐
巧妹儿1 分钟前
Python 配置管理封神技:pydantic_settings+@lru_cache,支持优先级,安全又高效,杜绝重复加载!
开发语言·python·ai·配置管理
独隅5 分钟前
Python AI 全面使用指南:从数据基石到智能决策
开发语言·人工智能·python
胡耀超9 分钟前
Web Crawling 网络爬虫全景:技术体系、反爬对抗与全链路成本分析
前端·爬虫·python·网络爬虫·数据采集·逆向工程·反爬虫
小陈的进阶之路13 分钟前
Selenium元素定位
python·selenium
李昊哲小课14 分钟前
matplotlib多子图与复杂布局实战
python·数据分析·matplotlib·数据可视化
2401_8319207414 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
写代码的【黑咖啡】19 分钟前
Python Web 开发新宠:FastAPI 全面指南
前端·python·fastapi
吴佳浩 Alben22 分钟前
GPU 编号错乱踩坑指南:PyTorch cuda 编号与 nvidia-smi 不一致
人工智能·pytorch·python·深度学习·神经网络·语言模型·自然语言处理
曲幽1 小时前
FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了!
python·websocket·nginx·socket·fastapi·web·async·socketio
阿钱真强道1 小时前
27 Python 分类-从概率角度做分类,一文认识朴素贝叶斯
python·分类·朴素贝叶斯·分类算法·贝叶斯分类·gaussiannb