1,前言

type hint 在pep484加入,我个人觉得这种类似于类型约束的(机制)有点违背了python简单、简洁的初衷,在慢慢向c# java 这种强类型语言看齐的节奏。

不过好在不强制使用,个人觉得依照规则编码也有点好处,

一方面,因为输入输出的类型进行定义的过程中,推动个人对输入输出进行详细的思考,个人的思路也会更清晰, 写的函数不容易飘。
另一方面,当代码量大的时候,可以借助工具进行检查,提前知道bug。
最后,也起到了docstring的作用,交流的时候,别人也更容易理解, 过了很长时间自己忘得差不多回过头看的时候,也能很快回忆起来。
2,type hints 类型

type hints 主要是要指示函数的输入和输出的数据类型,数据类型在typing 包中,基本类型有str list dict等等,

使用示例:

def hello(name: str) -> None:

print('hello {}'.format(name))
      type hints 有很多别的类型,此处主要说Union,Optional, 因为对于python 用到的也比较多

Union 是当有多种可能的数据类型时使用,比如函数有可能根据不同情况有时返回str或返回list,那么就可以写成Union[list, str]
Optional 是Union的一个简化, 当 数据类型中有可能是None时,比如有可能是str也有可能是None,则Optional[str], 相当于Union[str, None]. **注意** 和 函数有默认参数None有区别,有区别,有区别,不可省略默认参数,如下示例:
原始:def func(args = None):
错:def func(args:Optional[str]) -> None:
对:def func(args:Optional[str] = None) -> None:
type hints 还可以自定义类型等等
---------------------
作者:ypgsh
来源:CSDN
原文:https://blog.csdn.net/ypgsh/article/details/84992461
版权声明:本文为博主原创文章,转载请附上博文链接!

Python type hints 之 Optional,Union相关推荐

  1. Python Type Hints 从入门到实践

    Python 想必大家都已经很熟悉了,甚至关于它有用或者无用的论点大家可能也已经看腻了.但是无论如何,它作为一个将加入高考科目的语言还是有它独到之处的,今天我们就再展开聊聊 Python. Pytho ...

  2. python——type hints

    python--type hints 介绍 type hints 主要是要指示函数的输入和输出的数据类型,数据类型在typing 包中,基本类型有str,list,dict等等. def hello( ...

  3. Type Hints 入门教程,让代码更加规范整洁

    你有碰到这样的情况吗:你打开自己前段时间写的代码或者翻开同伴的代码,你已经忘记或者压根不知道这个函数的原型是什么.应该传入什么类型的参数,这时候需要你费很大劲阅读代码才能确定每个参数的类型是什么:如果 ...

  4. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  5. Python Type Hint类型注解

    原文地址:https://realpython.com/python-type-checking/ 在本指南中,你将了解Python类型检查.传统上,Python解释器以灵活但隐式的方式处理类型.Py ...

  6. PEP 484 – Type Hints

    PEP 484 – Type Hints PEP 484 – 类型提示 原文地址:https://www.python.org/dev/peps/pep-0484/ PEP: 484 Title: T ...

  7. python type hint

    python type hint 入门 初步使用 由于python是个动态类型语言,变量是什么类型是在变量运行的时候决定的,与他人合作或者代码躲多起来之后会变得难以阅读与调试,python3.5以上引 ...

  8. python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量...

    Python官方文档参考链接: 常规包 Python 定义了两种类型的包,常规包 和 命名空间包. 常规包是传统的包类型,它们在 Python 3.2 及之前就已存在. 常规包通常以一个包含 __in ...

  9. Python type 函数- Python零基础入门教程

    目录 一.type 函数简介 type 函数语法 二.type 函数实战 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.t ...

最新文章

  1. 版本控制8(译文) -(完)
  2. linux启动脚本 范本,Linux—微服务启停shell脚本编写模板
  3. web数据库连接注意事项
  4. 《ASCE1885的网络编程》---Winsock APIのIP地址转换函数
  5. pandas删除满足条件的行_入门Pandas练习
  6. [原创]DebugTools系列(4):AQTime经验总结
  7. python分布式框架_高性能分布式执行框架——Ray
  8. c++远征之多态篇——虚函数及其实现原理
  9. 医保费用监控指标体系建立(九)其他专项分析
  10. java 守护线程 作用_java中守护线程的一些概念和用法
  11. 培训变成了闹剧,却不想怎么改进
  12. java excel导出(基于注解)
  13. Java程序员如何写好一份个人求职简历
  14. ASE(Asset Scan Engine)资产扫描器
  15. Scrum:官僚者们的游戏
  16. 阿里粗排模型-cold
  17. 第七章 逻辑回归 - 多元逻辑回归
  18. QT之xml文件读写
  19. 浮士德头像裁剪flash版2016福利版
  20. java:判断字符串的开始或结尾

热门文章

  1. 2022-2028年中国耐二甲醚橡胶密封材料行业市场全景调研及发展趋势分析报告
  2. flask 学习实战项目实例
  3. 《将要淘汰的八种人》读后感
  4. 分布式TensorFlow集群local server使用详解
  5. ADAS摄像头20个技术挑战
  6. Apple苹果公司组织架构
  7. TVM性能评估分析(四)
  8. AI 芯片的分类及技术
  9. Dalvik虚拟机与java虚拟机的区别
  10. [JAVAEE] 理解“自然模板“+使用 ModelAndView 对象