python如何使用typing模块加强代码的可读性(python,typing,开发技术)

时间:2024-04-30 13:39:36 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、需求描述

没有类型提示的编程,总觉得不太方便,好在python3.5以后内置了typing模块。

typing模块会对函数和变量类型进行注解。

但是Python 运行时不强制执行函数和变量类型注解,但这些注解可用于类型检查器、IDE、静态检查器等第三方工具。

官方网址:

typing --- 类型提示支持 — Python 3.10.1 文档

https://docs.python.org/zh-cn/3/library/typing.html

二、实战演练

1、体验注解功能

如下所示,定义变量类型而不赋值,那么在赋值的时候就会有相应的提示,但运行不报错

fromtypingimportAbstractSetfromtypingimportDictfromtypingimportGeneratorfromtypingimportListfromtypingimportMappingfromtypingimportOptionalfromtypingimportTuplefromtypingimportTypeVarfromtypingimportUnionlist_001:List[int]list_001=123

python如何使用typing模块加强代码的可读性

2、List和Dict的使用

#List的使用deftest_List(num:int)->List[int]:return[num,bool(num),str(num)]#只要有一个符合指定类型,就不会给出提示信息#Dict的使用deftest_Dict(num:int)->Dict[str,int]:#return{"num":"num",1:"str(num)","str(num)":1}#只要有一个符合指定类型,就不会给出提示信息#return{1:3}#如果是key是1,则会出现提示key应该是str#return{"1":3}print(test_Dict(5))

python如何使用typing模块加强代码的可读性

3、Union的使用

#List的使用deftest_List(num:int)->[intorstrorbool]:return[num,bool(num),str(num)]#只要有一个符合指定类型,就不会给出提示信息#Dict和Union的使用deftest_Dict(num:int)->Dict[str,Union[int,str,bool]]:#return{"num":"num",1:"str(num)","str(num)":1}#只要有一个符合指定类型,就不会给出提示信息#return{1:3}#如果是key是1,则会出现提示key应该是str#return{"1":3}print(test_List(1))print(test_Dict(5))

python如何使用typing模块加强代码的可读性

4、Optional的使用

这个参数可以为空或已经声明的类型,即 Optional[X] 等价于 Union[X, None]

#Dict和Optional的使用deftest_Dict(num:int)->Dict[str,Optional[str]]:#return{"num":"num",1:"str(num)","str(num)":1}#只要有一个符合指定类型,就不会给出提示信息#return{1:3}#如果是key是1,则会出现提示key应该是str#return{"1":3}deftest_Dict01(num:int)->Dict[str,Optional[int]]:#return{"1":None}

5、Tuple的使用

与列表一致,元组泛型要求每个位置的类型要一一对应

#Optional的使用deftest_Dict(num:int)->Dict[int,Tuple[int,int]]:#return{1:(1,2)}#return{1:(1)}#非一一对应的时候会给出提示
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:python如何使用typing模块加强代码的可读性的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:如何使用Python开发游戏运行脚本实现模拟点击下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18