函数名的使用
函数名可以当作值赋值给变量
函数名可以当作元素放到容器里
闭包
- 一个嵌套函数
- 在嵌套函数内的函数使用外部(非全局的变量)
满足以上两条就是闭包
python中闭包,会进行内存驻留,普通函数执行完成后就销毁了。
闭包的作用:
- 解决全局里存放会有污染和不安全的现象
- 面试必问,装饰器—装饰器的本质就是闭包
闭包的弊端:会出现内存溢出
迭代器
可以被for的就是可迭代对象
Python协议
具有._iter_方法的就是可迭代对象
a=对象._iter_: 创建一个迭代器
判断迭代器的方法:
具有__iter__和__next__就是一个迭代器
迭代器特性:
惰性机制:每__next__一次取一个值
不能从下向上走
一次性的,用完就没了
递归
- 自己调用自己
- 有明确结束条件
超出了递归的最大层次
官方默认层次,官方说明1000,实际998/997
递归的应用场景:
在不明确要循环的次数时候,可以用递归
递归操作文件目录