zoukankan      html  css  js  c++  java
  • Pyhton 10 迭代器和闭包

    迭代器的一些概念

    迭代器协议 —— 内部含有__next__和__iter__方法的就是迭代器
    迭代器协议和可迭代协议
    可以被for循环的都是可迭代的
    可迭代的内部都有 __iter__ 方法
    只要是迭代器,一定可迭代
    可迭代的对象 .iter() 方法就可以得到一个迭代器
    迭代器中的 __next__() 方法可以一个一个的获取值

    for循环其实就是在使用迭代器

    #for循环的流程:
    it = lst.__iter__()
      while 1:
         try: el = it.__next__() #for循环的循环体 except StopIteration: break

      


    只有 是可迭代对象的时候,才能用for
    当我们遇到一个新的变量,不确定能不能for循环的时候,就判断它是否可迭代。

    迭代器的好处:
          1. 省内存

          2. 惰性机制

          3. 只能往前. 不能后退

       闭包

       闭包: 在内层函数中引入外层函数的变量
     作用:
      1. 保护变量不受侵害(javascript)
      2. 让一个变量常驻内存

    例子一

    def func():
        a = 10 # 安全的
        def func2():
            print(a)
        def func3():
            print(a)
        def func4():
            nonlocal a
            a = 20
    

      

     

  • 相关阅读:
    LightOJ 1094
    hdu 2586
    hdu 5234
    hdu 2955
    LightOJ 1030 数学期望
    poj 1273
    CodeIgniter学习笔记(十五)——CI中的Session
    CodeIgniter学习笔记(十四)——CI中的文件上传
    CodeIgniter学习笔记(十三)——CI中的分页
    CodeIgniter学习笔记(十二)——CI中的路由
  • 原文地址:https://www.cnblogs.com/NATO/p/9890552.html
Copyright © 2011-2022 走看看