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

         

  • 相关阅读:
    oracle 安装
    C++中 接口的定义 COM
    linux查看及改变运行级别
    BSD Apache GPL LGPL MIT
    DES MAC PIN HEX
    c语言字符输出格式化
    oracle
    Windows C++ 子目录数量
    GetProcAddress 宏
    How do I install Adobe Flash on Debian Wheezy?
  • 原文地址:https://www.cnblogs.com/wf123/p/9325823.html
Copyright © 2011-2022 走看看