zoukankan      html  css  js  c++  java
  • 闭包、迭代器

    一、函数名的应用以及第一类对象

      函数名可以向变量一样使用

      函数名可以进行赋值

      函数名可以充当容器中的元素类型

      函数名可以充当参数‘

      函数名可以作为函数名的返回值

    二、

      闭包

      

     def func():
         name = "alex"   # 常驻内存  防止其他程序改变这个变量
         def inner():
             print(name) # 在内层函数中调用了外层函数的变量,叫闭包, 可以让一个局部变量常驻内存
         return inner
    
     ret = func()
     ret() # 执行的是inner()

      内部函数访问外部函数的局部变量

      特点;

      安全

      常驻内存,提高效率

    三、迭代器

      可迭代对象:内部含有_ _ iter_ _

      迭代器:内部含有_ _iter_ _,_ _next_ _

      str , list,  dict,  tuple, set 都是可迭代对象,但不是迭代器

      文件的句柄 ,range(),是迭代器。

      迭代器的特点:

        节省内存

        惰性机制

        只能向前,不能回退。

    四、

      lst = ['秦始皇', '汉武帝', '齐桓公', '晋文公']

      it = lst._ _iter_ _() 

      while 1:

         try:

         name = _ _next_ _()

         except StopIteration:

           break

         

  • 相关阅读:
    获取cookie
    EF数据迁移(当模型改变时更新数据库)
    EF有外键的查询
    EF查询
    前台主页面给子页面赋值(回调)
    jquery取元素值
    chart画图
    IIS 7.0 的 ASP.NET 应用程序生命周期概述(转载)
    查询服务器登录个数
    gridview中判断隐藏还是现实
  • 原文地址:https://www.cnblogs.com/wf123/p/9325823.html
Copyright © 2011-2022 走看看