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

    1. 函数名第一类对象
    函数名其实就是变量名
    1. 可以像变量一样互相赋值
    2. 可以作为函数的参数, 进行传递
    3. 可以作为返回值返回
    4. 可以作为集合的元素进行存储

    __name__ 查看函数的名字
    __doc__ 查看函数的文档注释

    2. 闭包(函数的嵌套, 返回函数名): 内部函数对外部函数中的变量的调用
    作用:
    1. 保护变量
    2. 常驻内存
    基本写法:
    def outer():
        a = 10
        def inner():
            print(a)
        return inner
    3. 迭代器(用)
    1. Iterable: 可迭代的, 里面有__iter()__
    2. Iterator: 迭代器, 里面有__iter()__, 还有 __next__()

    特点:
    1. 节省内存
    2. 惰性机制(只有执行__next__()才会取值)
    3. 只能向前, 不能反复

    dir() 查看数据可以执行的方法
    还可以引入collections 中的Iterable和Iterator
    isinstance() 判断xxx对象是否是xxx类型

    for循环的内部用的是迭代器
    lst = [1, 2,3]
    it = lst.__iter__()
    while 1:
        try:
            it.__next__()
        except StopIteration:
            break 
    作者:凯旋.Lau
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    java内部私有类的构造函数
    java 日志
    java Random.nextInt()方法
    迭代器是快速失败的
    java Calendar
    java null?
    EclEmma
    Java泛型、泛型协变&&类型擦除
    java 声明实例化初始化三连
    写在Ruby之前。
  • 原文地址:https://www.cnblogs.com/KX-Lau/p/9670381.html
Copyright © 2011-2022 走看看