[PY3]——函数——函数注解 | 实现类型检查功能
2024-08-27 20:39:25
函数注解(Function Annotations)——> 可以在定义函数的时候对参数和返回值添加注解
写函数注解
#平时我们使用help()可以查看一个函数的说明,我们自己写的函数也可以提供这样的说明 #第一种方式:直接在函数内 '''写文本''' def add(x,y):
'''x+y
@:param x int
@:param y int
@return int
'''
return x+y #print(help(add))
Help on function add in module __main__:
add(x, y)
x+y
@:param x int
@:param y int
@return int
(END) # 第二种方式:更常用,是python中的函数注解语法
# 参数:类型 或 参数:"说明文本" -> 返回值类型
def add(x:int,y:"It's a int") ->int:
return x+y()
print(help(add))
Help on function add in module __main__:
add(x:int, y:"It's a int") -> int
(END)
查看函数注解
function.__annotations__
# function.__annotations__
print(sum.__annotations__)
#{'return': <class 'int'>, 'lst': typing.List<~T>[int]}
inspect.signature
# inspect.signature
import inspect # 获取函数注解
sig=inspect.signature(add)
print(sig)
#(x:int, y:"It's a int") -> int # 获取函数参数(其输出是个有序字典)
print(sig.parameters)
#OrderedDict([('x', <Parameter "x:int">), ('y', <Parameter "y:"It's a int"">)]) ## 获取指定参数注解 ##
# 法1:
print(sig.parameters['x'])
#x:int
# 法2:
print(sig.parameters['x'].annotation) #即利用parameters输出的有序字典来访问
#<class 'int'> ## 获取返回值注解 ##
print(sig.return_annotation)
#<class 'int'> print(sig.parameters.values())
#odict_values([<Parameter "x:int">, <Parameter "y:int">])
最新文章
- MacOS下Express安装过程中遇到的问题
- Database 'xxxx' is being recovered. Waiting until recovery is finished.
- Centos minimal安装
- Wix 安装部署教程(十六) -- 自动生成多语言文件
- Scala命令设置JVM参数的规则
- Redis常用的30个命令
- Windows Azure Compute Emulator无法启动问题解决方案
- 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
- mysql登录和连接 权限
- Java设计模式-建造者模式(Builder)
- HTTP方法简介
- C# 委托简单使用方法
- S3C2410 ADS实验手册
- Yii framework 应用总结小窍门(转)
- [Oracle] - 性能优化工具(1) - AWR
- Java经典封装JDBC模板(充分体现面向对象思想)(转)
- IOS 开发 【objective-c 基础1】
- 替换 window.location当中的某个参数的值(而其它值不变)JS代码
- Hibernate:如何映射聚合?
- 安装appuim
热门文章
- [Erlang27]如何监控指定目录下的*.beam文件,如果有改动就更新到指定的节点?
- Ubuntu 16.04.2 LTS 安装 jdk1.6 和 tomcat6 (二)
- echarts重绘
- JSON is undefined. Infopath Form People Picker in SharePoint 2013
- 大咖分享 | 一文解锁首届云创大会干货——下篇(文末附演讲ppt文件免费下载)
- 开源NFV管理器 - OpenStack Tacker介绍 NFV和Tacker介绍和主要功能
- jquery改造轮播图1
- 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群
- Vulnhub Billu_b0x
- Elastic Search 5.x Nest Multiple Queries C#