• 前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。

系列文章

  • python模块分析之random(一)

  • python模块分析之hashlib加密(二)

  • python模块分析之typing(三)

  • python模块分析之logging日志(四)

  • python模块分析之unittest测试(五)

  • python模块分析之collections(六)

  • typing模块的作用:

  1. 类型检查,防止运行时出现参数和返回值类型不符合。
  2. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
  3. 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查
  • 下面说说typing模块常用的方式:
from typing import List, Tuple, Dict
def add(a:int, string:str, f:float, b:bool) -> Tuple[List, Tuple, Dict, bool]:list1 = list(range(a))tup = (string, string, string)d = {"a":f}bl = breturn list1, tup, d,bl
print(add(5,"hhhh", 2.3, False))
# 结果:([0, 1, 2, 3, 4], ('hhhh', 'hhhh', 'hhhh'), {'a': 2.3}, False)
  • 说明:

  • 在传入参数时通过“参数名:类型”的形式声明参数的类型;

  • 返回结果通过"-> 结果类型"的形式声明结果的类型。

  • 在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。

  • 对于如list列表等,还可以规定得更加具体一些,如:“-> List[str]”,规定返回的是列表,并且元素是字符串。

  • 由于python天生支持多态,迭代器中的元素可能多种,如下:

from typing import List
def func(a:int, string:str) -> List[int or str]:list1 = []list1.append(a)list1.append(string)return list1# 使用or关键字表示多种类型
  • typing常用的类型:

  • int,long,float: 整型,长整形,浮点型;
  • bool,str: 布尔型,字符串类型;
  • List, Tuple, Dict, Set:列表,元组,字典, 集合;
  • Iterable,Iterator:可迭代类型,迭代器类型;
  • Generator:生成器类型;

  • 作者:天宇之游
  • 出处:http://www.cnblogs.com/cwp-bg/
  • 本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章明显位置给出原文链接。

转载于:https://www.cnblogs.com/cwp-bg/p/7825729.html

python模块分析之typing(三)相关推荐

  1. 【转】python模块分析之collections(六)

    [转]python模块分析之collections(六) collections是Python内建的一个集合模块,提供了许多有用的集合类. 系列文章 python模块分析之random(一) pyth ...

  2. Python模块内置函数

    一.任务描述   本实验任务主要完成对Python模块内置函数进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python模块内置函数,并对Python内置函数的基本操作进行整理并填写工作任务报 ...

  3. Python模块学习

    阅读目录 第一篇:Python模块之netmiko 第二篇:Python模块之junos-eznc 第三篇:Python模块之pexpect 第四篇:Python模块之paramiko 第五篇:Pyt ...

  4. python性能分析工具模块_python——关于Python Profilers性能分析器

    1. 介绍性能分析器 profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述.Python中含有3个模块提供这样的功能,分别是cProfile, profile和ps ...

  5. python利用什么来写模块-Python模块的制作方法实例分析

    本文实例讲述了Python模块的制作方法.分享给大家供大家参考,具体如下: 1 目的 利用setup.py将框架安装到python环境中,作为第三方模块来调用, 2 第一步:完成setup.py的编写 ...

  6. Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别

    Python之ruamel.yaml模块详解(三)| ruamel.yaml与pyyaml的区别 12 默认支持Yaml1.2 13 Py2和Py3重新整合 14 修复 15 测试 16 API 接前 ...

  7. python模块和包_(三)运用Python模块和包

    1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...

  8. IBM SPSS Statistics 与用户自定义 Python 模块的集成及分析

    本文介绍了如何将用户自定义的功能模块与 IBM SPSS Statistics 进行集成, 如何利用 Statistics 提供的统计分析方法对功能模块的输入数据进行预处理,并对集成结果进行分析与演示 ...

  9. 多渠道归因分析:python实现马尔可夫链归因(三)

    本篇主要是python实现马尔科夫链归因,关联的文章: 多渠道归因分析(Attribution):传统归因(一) 多渠道归因分析:互联网的归因江湖(二) 多渠道归因分析:python实现马尔可夫链归因 ...

  10. <2021SC@SDUSC>【Overload游戏引擎】OvUI源码模块分析(三)——Internal

    <2021SC@SDUSC>[Overload游戏引擎]OvUI源码模块分析(三)--Internal 前言 Internal 1.Converter 2.EMemoryMode 3.Wi ...

最新文章

  1. Go语言 Redis的使用
  2. Java序列化魔术方法及其示例使用
  3. Android官方开发文档Training系列课程中文版:数据存储之数据库存储
  4. 23.vs2015创建Qt界面动态库
  5. 嵌入式操作系统内核原理和开发(通用优先级调度)
  6. IList对象排序算法
  7. Altium AD20的PCB板框绘制、定义板子形状、重新设置原点、放置尺寸标注
  8. 已经导入aspectjweaver maven坐标却无法import
  9. 开发一个app多少钱?app开发费用明细、app开发成本计算
  10. xcode清理缓存_Mac 垃圾清理软件腾讯柠檬Lemon
  11. 钉钉微应用H5的调试方法
  12. c++ 的interface
  13. 特征提取——Hand-crafted feature
  14. LTU、TTU、DTU、FTU、RTU在电路中的安装位置,功能,区别
  15. 程序界的高手传奇(转)
  16. 2021湖南省地区高考成绩排名查询,湖南高考排名查询方法,2021年湖南高考成绩位次全省排名查询...
  17. mySql文字上标_如何在 Pages 里面打出文本上标和下标
  18. 计算机mac地址怎么读,如何读取MAC地址
  19. 【sdx62】QCMAP_CLI手动拨号操作说明
  20. 3.1集合的概念和表示法

热门文章

  1. java rfid 写入_RFID读写器函数JAVA调用示例
  2. linux容器返回宿主机,Linux下Docker容器访问宿主机网络
  3. SpringMVC拦截器(包括自定以拦截器--实现HandlerInterceptorAdapter)(资源和权限管理)...
  4. 51nod 1526 分配笔名(字典树+贪心)
  5. 【MSP是什么】最佳管理实践指南
  6. django基础-学生管理系统
  7. linux 命令 — cut
  8. atitit.提高开发效率---mda 革命性的软件开发方法
  9. mass种子模块之domready
  10. ScriptX打印控件的使用