19-3-15Python中闭包,迭代器,递归

函数名的使用

       函数名可以当作值赋值给变量

       函数名可以当作元素放到容器里

闭包

  1. 一个嵌套函数
  2. 在嵌套函数内的函数使用外部(非全局的变量)

满足以上两条就是闭包

python中闭包,会进行内存驻留,普通函数执行完成后就销毁了。

闭包的作用:

  1. 解决全局里存放会有污染和不安全的现象
  2. 面试必问,装饰器—装饰器的本质就是闭包

闭包的弊端:会出现内存溢出

迭代器

       可以被for的就是可迭代对象

       Python协议

       具有._iter_方法的就是可迭代对象

       a=对象._iter_:     创建一个迭代器

       判断迭代器的方法:

                     具有__iter__和__next__就是一个迭代器

       迭代器特性:

              惰性机制:每__next__一次取一个值

              不能从下向上走

              一次性的,用完就没了

递归

  1. 自己调用自己
  2. 有明确结束条件

超出了递归的最大层次

官方默认层次,官方说明1000,实际998/997

递归的应用场景:

        在不明确要循环的次数时候,可以用递归

        递归操作文件目录

原文地址:https://www.cnblogs.com/1oo88/p/10537027.html