【Python教程】typing模块的作用-提高代码健壮性
typing模块的作用:
- 类型检查,防止运行时出现参数和返回值类型不符合。
- 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
- 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
注意: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天生支持多态,迭代器中的元素可能多种,如下:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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:生成器类型;
【Python教程】typing模块的作用-提高代码健壮性相关推荐
- python教程:模块的作用与说明
Python模块 如果你从Python解释器退出并再次进入,之前的定义(函数和变量)都会丢失.因此,如果你想编写一个稍长些的程序,最好使用文本编辑器为解释器准备输入并将该文件作为输入运行.这被称作编写 ...
- 【转】使用python3的typing模块提高代码健壮性
https://blog.csdn.net/wjy397/article/details/78711125 转载于:https://www.cnblogs.com/LJ-LJ/p/9728481.ht ...
- 关于提高代码复用性的几个知识点的回顾
在java学习过程中,我发现有几个知识点,它们的作用都包含有提高代码的复用性.所谓提高代码复用性,简单来说就是能够让一个东西重复操作,还能减少工作量(也就是懒人思想).目前提到提高代码复用性的知识点有 ...
- c++代码健壮性_复活Navex-使用图查询进行代码分析(上)
从了解到修复 Navex, 其中花了一年多, 从对自动化代码审计一无所知到学习PL/Static Analysis, 翻阅十几年前的文档, 补全Gremlin Step, 理解AST, CFG, DD ...
- php代码的健壮性,代码健壮性的几点思考 - 逍遥客 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
自动化一直如火如荼的发展的,但同时,很多从业者在经历了最初的热情.激进之后,也会陷入了冷静的思考:那就是投入产出比问题,那就是自动化测试是否真的给测试工作带来了质的改变. 在诸多的引起思考,带来彷徨的 ...
- 后端开发总结(3):代码健壮性:容错处理+测试
代码健壮性:容错处理+测试 1.1 客户端接收云端请求容错处理 1.2 参数校验 1.3 测试 1.1 客户端接收云端请求容错处理 几种错误情况 没有请求通,没有返回.服务端错误,对应的就是http ...
- python教程--__init_.py的作用
__init__.py 的作用 python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module. 那么,__init__.py还有什么别的功能呢? ...
- Python 包、模块、类以及代码文件和目录的一种管理方案
摘要: 一.模块: 模块实质上就是一个以.py结尾的文件,可以被其他py文件调用: 使用模块:大大提高了代码的可维护性:编写代码不必从零开始:当一个模块编写完毕,就可以被其他地方引用! 导入模块时,会 ...
- 设计模式第二弹: 不知道怎么提高代码复用性?看看这几种设计模式吧!
本文是设计模式的第二篇文章,第一篇文章是不知道怎么封装代码?看看这几种设计模式吧!,后面还会有提高扩展性,提高代码质量的设计模式,点个关注不迷路,哈哈~ 想必大家都听说过DRY原则,其实就是Don't ...
最新文章
- 6位专家耗时90天打造,Python的核心知识,都在这里了!
- 根据传入url请求,返回json字符串
- linux kbhit扫描键盘,(转)检测按键(Linux中kbhit()函数的实现)
- ggplot01:R语言坐标轴离散、连续与图例离散连续的区分
- 面试:为什么 https 比 http 更安全?
- Linux笔记:vim
- DX使用随记--GroupControl
- android 之 Activity管理与Intent的六大属性
- 您应该知道的ES2020中的10个JavaScript新功能
- 减少页面加载时间的方法
- 3年前的一个小项目经验,分享给菜鸟兄弟们(公文收发小软件:前期需求调查部分)...
- 在河北当中学老师用不用考计算机,想当教师没编制?两类教师不用考,直接进编制...
- Hdu 1026 Ignatius and the Princess I
- Linux字符设备驱动详解
- 实验室检测专用计算机的维护保养,计算机实验室维护与管理.doc
- 附资料:工程总承包项目管理流程图(全套)
- 谷歌浏览器设置护眼模式,全黑主题
- Mac 安装 MAT内存分析工具
- GY-BMP280-3.3 高精度大气压强传感器模块
- kibana异常 License information from the X-Pack plugin could not be obtained from Elasticsearch