You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现类似typedef的功能,定义非类的自定义类型?

Python中实现类似typedef的自定义类型别名方案

你要的这种复合类型别名不需要定义类,直接赋值即可实现和C语言typedef完全一致的效果,不同Python版本的写法如下:

Python 3.10+ 最简写法

3.10版本引入了更简洁的联合类型运算符|,同时原生容器默认支持泛型标注,写法如下:

RecordType = dict[int | str, set[str]]

Python 3.9 版本写法

3.9版本支持原生容器泛型,但还没有联合类型运算符,需要导入Union:

from typing import Union
RecordType = dict[Union[int, str], set[str]]

兼容Python 3.5~3.8版本

3.8及更低版本的原生容器不支持泛型标注,需要从typing模块导入对应泛型容器:

from typing import Dict, Union, Set
RecordType = Dict[Union[int, str], Set[str]]

注意事项

  • 上述写法定义的RecordType可以直接在后续类型标注里使用,所有主流静态类型检查工具(mypy、pyright等)都能正常识别校验
  • 类型别名仅用于静态类型检查阶段,Python运行时不会做强制类型校验,如果需要运行时校验能力可以搭配pydantic等第三方库使用

内容的提问来源于stack exchange,提问作者OrenIshShalom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:48:00