51汉诺塔
52函数文档、类型注释、内省
函数是一种代码封装的方法,对于一个程序来说,函数就是一个结构组件,在函数的外部是不需要关心函数内部的执行细节的,更需要关注的是函数的接口以及执行后的结果
如何快速的融入到开发环境中:学会去阅读开发手册和函数文档,使用help函数
创建函数文档:使用字符串
标准的函数文档的写法
注意:函数文档一定是在函数的最顶部
函数开头的几行字符串并不会被打印出来,因为它是作为函数的文档被保存起来的
类型注释:注释函数的参数和返回值,可以加默认参数
Mypy模块
内省:
查看函数文档 用doc 不好阅读就用print因为print会把转义字符解析出来
查看参数和返回值用annotations
53高阶函数:一个函数接收另一个函数作为参数 如map filter等
min max salty也算是 因为它们有个key参数 接收的是一个函数对象
函数可以被当成变量传递来去
Functools模块:包含了非常多实用的高阶函数以及装饰器
内置函数BIF给它个名字就可以调 但如果放入一个模块 就要先导入该模块、
导完还要functools.reduce第一个参数是指定一个函数 必须指定两个参数二是可迭代对象 reduce作用即将可迭代对象中的元素依次传递到第一个参数指定的函数中 返回累计结果
另外 可以将第一个参数写成lambda表达式
偏函数:对指定函数进行二次包装,通常将现有函数部分参数预先给绑定,得到一个新函数
作用:将一个函数的多个参数给拆分多次进行传递
装饰器只是一个语法糖 实际代码由于闭包的设计 调用myfunc其实是相当于调用了time master 函数 传入myfunc作为他的参数 而调用了time master 函数 其实是在调用call func函数
@wraps装饰器在functools模块里要导入 再找到它里面闭包真正调用的这个函数