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-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程