python-typing&type hint
2021/8/26 1:06:02
本文主要是介绍python-typing&type hint,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python是动态语言,不用声明类型
# 不使用类型提示 def func(a,b): return a+b func('1','1') # '11' func(1,1) # 2 func('1',1) # 未使用类型提示,代码编辑时不会报错,代码执行时会报错 # 使用类型提示 from typing import overload @overload def func(a: int, b: int): pass @overload def func(a: str, b: str): pass def func(a, b): return a + b func(1, '1') # 使用类型提示,在代码编辑时就会报错,可以在代码执行前预防可能出现的问题
type hint
提示类型并不是可用类型,如typing.List并不是list的子类,typing.List只是一个type hint,对a参数指定一个type hint,这个type hint会被设置为func方法a入参的type hint属性,执行代码不会其任何作用,但是执行代码过程中可以获取到这个type hint属性,并使用它做一些处理
常见type hint
- List是list的泛型(泛型:表示某种类型)
- Tuple是tuple的泛型
- NamedTuple是collections.namedtupe的泛型
- Dict是dict的泛型
- Mapping是collections.Mapping的泛型
- Set是set的泛型
- Sequence是collection.Sequence的泛型/tuple+list的泛型
- NoReturn是无返回的泛型
- Any是任意类型的泛型
- TypeVar,可以创建泛型变量,就是传什么泛型就是什么泛型(
T = TypeVar('T')
) - NewType,一个新的泛型,
List=NewType('List', list)``Person=NewType('Person', int, int)
- Callable是可调用类型的泛型
- Union是联合类型
- Optional是可为空的联合类型
- Generator是一个生成器类型
每个实际类型都可以声明一个对应的泛型,可以使用实际了类型做type hint,所以很多时候都是直接用实际类型做typehint
typing.Generic
这篇关于python-typing&type hint的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享