参数注解,Python3.5出来的功能。Python是动态语言,变量随时被赋值,且能赋值为不同的类型,这样,拿到一个函数使用不知道传入什么类型的数据,直到使用过程中,运行时才能发现问题。
作用:对函数的参数进行类型注解 对函数的返回值进行类型注解 只对函数参数做一个辅助的说明,并不对函数参数进行类型检查 提供给第三方工具,做代码分析,发现隐藏bug
函数注解的信息,保存在annotations属性中
我们可以利用这个对函数进行参数类型检查:
1.思路:
①函数参数检查,一定在函数外②函数应该作为参数,传入到检查函数中③检查函数拿到函数传入的实际参数,与形参声明对比④ annotations属性是一个字典,其中包括返回值类型的声明。假设要做位置参数的判断,无法和字典中的声明对应,这时使用inspect模块。inspect模块提供获取对象信息的函数,可以检查函数和类,类型检查
2.parameter对象
(指的参数)
保存在元组中,是只读的
包含重要的5个类型; ①name ,参数的名字 ②annotation参数的注解,可能没有定义 ③ default ,参数的缺省值,可能没有定义 ④empty,特殊的类,用来标记default属性或者注释annotation属性的空值 ⑤kind,实参如何绑定到形参,就是形参的类型
柯里化
定义:指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原来第二个参数为参数的函数
举例: 将加法函数柯里化
原函数
def add(x,y):
return x+y
add(5,6)
def add(x):
def _add(y):
return x+y
return _add
add(5)(6)
利用了嵌套函数还来实现。