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
    

      

     

  • 相关阅读:
    jQuery 从无到有.一天完成.
    JavaScript从无到有(一天完成)
    HTML(第一篇)
    前端认识
    三元表达式,列表推导是,字典生成式
    ORM之youku项目小练习(上)
    高逼格壁纸
    pymysql 基操全套
    怎么学好编程?
    mysql 事务
  • 原文地址:https://www.cnblogs.com/NATO/p/9890552.html
Copyright © 2011-2022 走看看