Python 3函数注解:为函数提供类型提示信息
Python 函数 类型 提供 注解 提示信息
2023-06-13 09:11:55 时间
函数注解是 Python 3 最独特的功能之一,关于它的介绍,官方文档是这么说的, 函数注解是关于用户自定义函数使用类型的完全可选的元信息 。也就是说,官方将函数注解的用途归结为:为函数中的形参和返回值提供类型提示信息。
提供类型信息:包括类型检查、让 IDE 显示函数接受和返回的类型、适配、与其他语言的桥梁、数据库查询映射、RPC参数编组等; 其他信息:函数参数和返回值的文档。 总之,虽然函数注解存在的时间和 Python 3 一样长,但目前仍未找到任一常见且积极维护的包,将函数注解用作类型检查之外的功能。Python 3 最初发布时包含函数注解的最初目的也仅是用于试验和玩耍。
下面是对 Python 官方文档中的示例稍作修改后的程序,可以很好的展示如何定义并获取函数注解:
def f(ham:str,egg:str= eggs )- str: pass print(f.__annotations__)
输出结果为:
{ ham : class str , egg : class str , return : class str }
如上所示,给函数中的参数做注解的方法是在形参后添加冒号 : ,后接需添加的注解(可以是类(如 str、int 等),也可以是字符串或者表示式);给返回值做注解的方法是将注解添加到 def 语句结尾的冒号和 - 之间。
注意,如果参数有默认值,参数注解位于冒号和等号之间。比如 eggs:str= eggs ,它表示 eggs 参数的默认值为 eggs ,添加的注解为 str。
给函数定义好注解之后,可以通过函数对象的 __annotations__ 属性获取,它是一个字典,在应用运行期间可以获取。这里再举一个例子:
def square(number: 一个数字 )- 返回number的平方 : return number**2 print(square(10)) print(square.__annotations__)
运行结果为:
100
{ number : 一个数字 , return : 返回number的平方 }
事实上,函数注解并不局限于类型提示,而且在 Python 及其标准库中也没有单个功能可以利用这种注解,这也是这个功能独特的原因。
注意,函数注解没有任何语法上的意义,只是为函数参数和返回值做注解,并在运行获取这些注解,仅此而已。换句话说,为函数做的注解,Python不做检查,不做强制,不做验证,什么操作都不做,函数注解对Python解释器没任何意义。
函数注解可能的用法PEP 3107 作为提议函数注解的官方文档,其中列出了以下可能的使用场景:
提供类型信息:包括类型检查、让 IDE 显示函数接受和返回的类型、适配、与其他语言的桥梁、数据库查询映射、RPC参数编组等; 其他信息:函数参数和返回值的文档。 总之,虽然函数注解存在的时间和 Python 3 一样长,但目前仍未找到任一常见且积极维护的包,将函数注解用作类型检查之外的功能。Python 3 最初发布时包含函数注解的最初目的也仅是用于试验和玩耍。
21318.html
python相关文章
- Python进阶28-Django 模板层(Jinja2)
- pycharm安装程序包_Python不可以安装的软件包
- python进制转换函数-Python中进制转换函数的使用
- 【说站】python中删除文档的方法
- python hexdump_细说Linux中怎么用hexdump命令
- Python 的 map 函数也可以处理多个参数的函数
- lambda python表达式_Python的条件表达式和lambda表达式实例
- python控制windows窗口,并输入数据_python执行windows命令
- 自定义Python排序函数比较方式
- Python列表常用的函数和方法(1)_Python自学第二十节
- python实现微信不断给好友发消息
- 纯 Python 实现的图片压缩工具
- 地图函数在 Python 中有什么用?
- Python基础语法-函数-迭代器
- Python基础语法-函数的错误处理-raise语句
- Python创建Windows 服务详解编程语言
- python-time模块、sys模块、os模块以及大量实例详解编程语言
- Python函数使用方法(高级用法)
- Python如何连接MySQL数据库(python怎么连接mysql数据库)
- 一文详解神经网络 BP 算法原理及 Python 实现