参数注解

1、对函数的参数进行类型注解2、对函数的返回值进行类型注解3、只对函数参数做一个辅助说明,并不对函数参数进行类型检查4、提供给第三方工具,做代码分析,发现隐藏BUG5、函数注解的信息,保存在__annotations__属性中def add(x: int, y: int, *args, **kwargs) -> int: ret = x + y ret...
摘要由CSDN通过智能技术生成

1、对函数的参数进行类型注解

2、对函数的返回值进行类型注解

3、只对函数参数做一个辅助说明,并不对函数参数进行类型检查

4、提供给第三方工具,做代码分析,发现隐藏BUG

5、函数注解的信息,保存在__annotations__属性中

def add(x: int, y: int, *args,  **kwargs) -> int:
    ret = x + y
    return ret


print(add.__annotations__)

out:
{'y': <class 'int'>, 'return': <class 'int'>, 'x': <class 'int'>}  # 无序字典

Python 3.6引入

变量注解:  i: int = 3

业务应用:

函数参数的检查,一定是要函数外

函数应作为参数,传入到检查函数中

检查函数拿到函数传入的实际参数,与形参声明对比

__annotations__属性是一个字典,其中包括返回值类型的声明

假设要做位置参数的判断,无法和字典中的声明对应,要使用inspect模块

 

inspect模块

提供获取对象信息的函数,可以检查函数的类、类型检查

signature(callable),获取签名

签名包含了一个函数的信息,包括函数名,参数类型,它所在的类和名称空间及其他信息

 

Parameter对象

1、保存在元组中,是只读的

2、name,参数的名字

3、annotation,参数的注解,可能没有定义

4、default,参数的缺省值,可能没有定义

5、empty,特殊的类,用来标记default属性或者注解annotation属性的空值

6、kind,实参如何绑定到形参,就是形参的类型

POSITIONAL_ONLY,值必须是位置参数提供,Python没有实现,因为

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值