美文网首页
python 迭代器 闭包

python 迭代器 闭包

作者: 现实里的童话xklss | 来源:发表于2018-07-28 13:33 被阅读0次

    迭代器

    迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

    可迭代对象

    迭代器提供了一个统一的访问集合的接口。只要是实现了iter()或getitem()方法的对象,就可以使用迭代器进行访问。
    序列:字符串、列表、元组
    非序列:字典、文件
    自定义类:用户自定义的类实现了iter()或getitem()方法的对象

    创建迭代器对象

    使用内建的工厂函数iter(iterable)可以获取迭代器对象:
    语法:
    iter(collection) -> iterator
    iter(callable,sentinel) -> iterator

     1 使用内置工厂函数生成迭代器
     2 >>> L1 = [1,2,3,4,5,6]
     3 >>> I2 = iter(L1)
     4 >>> print I2
     5 <listiterator object at 0x7fe4fd0ef610>
     6 >>> I2.next()
     7 1
     8 >>> I2.next()
     9 2
    10 >>> I2.next()
    11 3
    

    闭包

    闭包是函数式编程的一个重要的语法结构,函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。
      不同编程语言实现闭包的方式是不同的,python中闭包从表现形式上看,如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。

    举个例子:

    def outer(x):
        def inner(y):
            return x + y
        return inner 
    

    相关文章

      网友评论

          本文标题:python 迭代器 闭包

          本文链接:https://www.haomeiwen.com/subject/lldomftx.html