当前位置: 首页 > news >正文

python---类型别名

文章目录

  • 基本用法
  • 现代 Python (3.10+) 语法
  • 应用场景
    • 1、简化复杂类型
    • 2、提高可读性
    • 3、文档化代码
  • 注意事项

类型别名是 Python 类型注解系统中用来为复杂类型创建简化的替代名称的功能。它们可以提高代码的可读性和可维护性。

基本用法

1、基本类型别名

MyInt = int
MyStr = str
MyList = list

2、使用 TypeAlias 和 typing 模块来定义类型别名:

from typing import TypeAlias, List, Dict# 简单别名
UserId: TypeAlias = int# 复杂类型别名
UserDict: TypeAlias = Dict[str, str]
NamesList: TypeAlias = List[str]

现代 Python (3.10+) 语法

Python 3.10 引入了更简洁的语法:

# Python 3.10+ 的简化语法
type UserId = int
type UserDict = dict[str, str]
type NamesList = list[str]
type Coordinate = tuple[float, float]

应用场景

1、简化复杂类型

from typing import Union

type JsonValue = Union[str, int, float, bool, None, list[‘JsonValue’], dict[str, ‘JsonValue’]]

2、提高可读性

type Point = tuple[float, float]

def distance(p1: Point, p2: Point) -> float:
return ((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)**0.5

3、文档化代码

type CustomerID = int # 表示客户唯一标识符
type OrderID = int # 表示订单唯一标识符

注意事项

1、类型别名不会创建新类型,只是为现有类型提供别名

2、类型别名在运行时会被擦除,仅用于静态类型检查

3、可以使用字符串字面量来前向引用尚未定义的类型

http://www.xdnf.cn/news/1268119.html

相关文章:

  • 新手小白使用jQuery在实际开发中常用到的经验
  • ABP VNext + Akka.NET:高并发处理与分布式计算
  • 从 AI 到实时视频通道:基于模块化架构的低延迟直播全链路实践
  • Vuex与Pinia对比,以及技术选型
  • 《C++进阶之继承多态》【普通类/模板类的继承 + 父类子类的转换 + 继承的作用域 + 子类的默认成员函数】
  • 10.final, finally, finalize的区别
  • 【自动化运维神器Ansible】playbook自动化部署Nginx案例解析:助力从零构建高效Web服务
  • 2025 大语言模型系统学习路线:从基础到部署与优化的全方位指南(含权威资源与项目实战)
  • 4深度学习Pytorch-神经网络--损失函数(sigmoid、Tanh、ReLU、LReLu、softmax)
  • IDEA快捷键壁纸分享
  • 光伏面板损伤检出率↑91%!陌讯多模态识别算法在无人机巡检的落地实践
  • AI 破解数据质量难题:从混乱到可信的智能进化之路
  • 计算机网络1-6:计算机网络体系结构
  • webwork的学习
  • 非常简单!从零学习如何免费制作一个lofi视频
  • 香橙派 RK3588 部署千问大模型 Qwen2-VL-2B 推理视频
  • 2025华数杯数学建模C题:可调控生物节律LED光源全解析
  • 2025华数杯B题一等奖方案:网络切片无线资源管理全解析(附Python/MATLAB代码)
  • 机器学习(西瓜书)学习——绪论
  • LeetCode 面试经典 150_数组/字符串_分发糖果(15_135_C++_困难)(贪心算法)
  • 【Redis7.x】docker配置主从+sentinel监控遇到的问题与解决
  • GPT-5:数字大脑的进化史
  • 1393. 与7无关的数?
  • 【Linux】Tomcat
  • 八、Linux Shell 脚本:变量与字符串
  • jupyter服务器创建账户加映射对外账户地址
  • 2025-08-09 李沐深度学习12——卷积神经网络基础
  • Zabbix自动注册:轻松实现大规模监控
  • Vue3环境搭建+Mybatis-plus的使用
  • 【ref、toRef、toRefs、reactive】ai