欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python使用typing模块加强代码的可读性(实战演示)

时间:2022-08-03 12:21:25|栏目:Python代码|点击:

一、需求描述

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

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

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

官方网址:

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

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

二、实战演练

1、体验注解功能

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

from typing import AbstractSet
from typing import Dict
from typing import Generator
from typing import List
from typing import Mapping
from typing import Optional
from typing import Tuple
from typing import TypeVar
from typing import Union
 
list_001:List[int]
list_001 = 123

 2、List和Dict的使用

# List的使用
def test_List(num: int) -> List[int]:
    return [num, bool(num), str(num)]  # 只要有一个符合指定类型,就不会给出提示信息
 
# Dict的使用
def test_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))

 3、Union的使用

# List的使用
def test_List(num: int) -> [int or str or bool]:
    return [num, bool(num), str(num)]  # 只要有一个符合指定类型,就不会给出提示信息
 
# Dict和Union的使用
def test_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))

4、Optional的使用

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

# Dict和Optional的使用
def test_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}
 
def test_Dict01(num: int) -> Dict[str,Optional[int]]:  #
    return {"1":None}

5、Tuple的使用

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

# Optional的使用
def test_Dict(num: int) -> Dict[int,Tuple[int,int]]:  #
    return {1:(1,2)}
    # return {1:(1)}  # 非一一对应的时候会给出提示

上一篇:python 字符串常用方法超详细梳理总结

栏    目:Python代码

下一篇:Pandas 多进程处理数据提高速度

本文标题:python使用typing模块加强代码的可读性(实战演示)

本文地址:http://www.codeinn.net/misctech/209732.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有