美文网首页
python入门 第十五天 生成器、迭代器

python入门 第十五天 生成器、迭代器

作者: xinmin | 来源:发表于2018-09-20 22:47 被阅读0次
    • 生成器 generator
      • 关键词
        yield:保存上一次的执行状态,__next__:执行函数寻找下一个yield
        def xrange():
            print(11)
            yield 1
            print(22)
            yield 2
            print(33)
            yield 3
        # 仅仅获取了一个生成器
        r = xrange()
        # 生成器的__next__方法,执行函数寻找下一个yield
        ret = r.__next__()
        print(ret) 
        """
        11
        1
        """
        ret = r.__next__()
        print(ret)
        """
        22
        2
        """
        ret = r.__next__()
        print(ret)
        """
        33
        3
        """
        # xrange的内部实现原理
        def myXrange(n):
            start = 0
            while True:
                if start > n:
                    return 
                yield start
                start += 1
        # =====================
        # 创建迭代器
        obj = myXrange(5)
        n1 = obj.__next__()
        n2 = obj.__next__()
        n3 = obj.__next__()
        n4 = obj.__next__()
        n5 = obj.__next__()
        n6 = obj.__next__()
        print(n1, n2, n3, n4, n5, n6) # 1 2 3 4 5
        
    • 迭代器 iterator
      • 关键词:iter
        从前往后一个一个去访问的能力

    相关文章

      网友评论

          本文标题:python入门 第十五天 生成器、迭代器

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