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

 更新时间:2021年12月21日 15:22:04   作者:Lion King  
Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,typing模块可以很好的解决这个问题。下面通过本文给大家介绍python使用typing模块加强代码的可读性,感兴趣的朋友一起看看吧

一、需求描述

没有类型提示的编程,总觉得不太方便,好在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:使用typing模块加强代码的可读性的文章就介绍到这了,更多相关python typing模块加强代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows下python安装pip方法详解

    windows下python安装pip方法详解

    这篇文章主要介绍了windows下python安装pip方法详解,需要的朋友可以参考下
    2020-02-02
  • 浅谈Python由__dict__和dir()引发的一些思考

    浅谈Python由__dict__和dir()引发的一些思考

    这篇文章主要介绍了浅谈Python由__dict__和dir()引发的一些思考,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Django 中间键和上下文处理器的使用

    Django 中间键和上下文处理器的使用

    这篇文章主要介绍了Django 中间键和上下文处理器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 一文详解Python中的时间和日期处理

    一文详解Python中的时间和日期处理

    在Python开发中,我们经常需要处理日期和时间,Python提供了一些内置模块,如datetime、time和calendar,这些模块让我们能够轻松地获取、操作和格式化日期和时间,本文将介绍如何在Python中使用这些模块进行日期和时间的处理
    2023-06-06
  • python获取命令行参数实例方法讲解

    python获取命令行参数实例方法讲解

    在本篇文章里小编给大家整理的是一篇关于python获取命令行参数实例方法讲解内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • python实现文本去重且不打乱原本顺序

    python实现文本去重且不打乱原本顺序

    这篇文章主要介绍了python实现文本去重且不打乱原本顺序,需要的朋友可以参考下
    2016-01-01
  • python实现七段数码管和倒计时效果

    python实现七段数码管和倒计时效果

    今天小编就为大家分享一篇python实现七段数码管和倒计时效果,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • selenium获取当前页面的url、源码、title的方法

    selenium获取当前页面的url、源码、title的方法

    这篇文章主要介绍了selenium获取当前页面的url、源码、title的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python+OCR实现文档解析的示例代码

    Python+OCR实现文档解析的示例代码

    本文是一个简单教程,主要介绍了如何使用OCR进行文档解析以及使用Layoutpars软件包进行了整个检测和提取过程,感兴趣的可以了解一下
    2022-09-09
  • 关于pycharm中pip版本10.0无法使用的解决办法

    关于pycharm中pip版本10.0无法使用的解决办法

    近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pip 中由于缺少 main 函数,导致在 pycharm 中无法自动安装第三方库。本文就介绍一下如何解决
    2019-10-10

最新评论