函数对象
函数也是对象,操作可像对象一般操作
高阶函数
高阶函数指接受参数为函数,或返回函数的函数
不少高阶函数在py3已经有了替代品。map, filter可通过生成式实现,reduce(在functools里)可通过sum实现
匿名函数
可调用对象
类实例化时,先调类的__new__方法,然后调__init__初始化实例
对象是否可调用,可用callable内置函数判断,callable会调用对象__call__方法
函数参数
参数顺序:一般参数,*参数,默认参数,关键字参数(待完善)
获取函数参数信息
func.__code__.co_varnames获取函数参数名
func.__code__.co_argcount获取函数参数个数
inspect模块也可用来看函数参数
函数注解
即在函数声明时对入参和函数添加说明,形如下
注解存在函数对象的__annotations__属性里
注解是函数的元数据,功能上目前没有哪里会用到函数注解
inspect.signature也可提取注解