• Python 生成器 迭代器函数


    一,生成器函数。

    当函数中包含特殊字符,yield 的时候, 这个函数就是一个特殊的函数------生成器函数。
    1. 函数(),并不开始执行函数,只是表示获取到了一个生成器。
    2. 只有调用生成器的__next__()方法的时候,才开始执行生成器函数中的内容。
    3. 调用第一个 __next__()方法的时候,只是执行到第一个 yield 为止。
    下一个__next__()方法,从这个yield 之后的内容开始执行。并且到第二个 yield 为止。
    4. yield 后面的是函数执行__next__() 当前方法的返回值。

    生成器函数会返回yield后面的返回值,并记录当前__next__()方法运行到的位置。作为下一个__next__()方法的起始位置。
    # !/usr/bin/env python
    # -*- coding:utf8 -*-
    """
    当函数中包含特殊字符,yield 的时候, 这个函数就是一个特殊的函数------生成器函数。
    1. 函数(),并不开始执行函数,只是表示获取到了一个生成器。
    2. 只有调用生成器的__next__()方法的时候,才开始执行生成器函数中的内容。
    3. 调用第一个 __next__()方法的时候,只是执行到第一个 yield 为止。
       下一个__next__()方法,从这个yield 之后的内容开始执行。并且到第二个 yield 为止。
    4. yield 后面的是函数执行__next__() 当前方法的返回值。
    """
    
    
    # 定义一个函数
    def func1():
        print(11)
        yield 1
    
        print(22)
        yield 2
    
        print(33)
        yield 3
    
    
    # 仅仅获取到了一个生成器函数,并不开始执行函数
    result = func1()  # result 只是生成器的一个实例化的对象
    print(result)
    
    ret = result.__next__()  # 调用__next__(),函数开始执行,并且到第一个 yield 为止。
    print(ret)  # 查看一下生成器的当前的返回值
    
    ret2 = result.__next__()  # 再次调用__next__(),函数从上次yield后面的内容开始执行,并且到下一个 yield 为止。
    print(ret2)  # 再次查看一下生成器的当前的返回值
    
    
    
     
  • 相关阅读:
    background和background-size
    获取表单的初始值,模拟placeholder属性
    input[type=checkbox]
    background-size
    input的type属性的修改
    选项卡切换
    2016.12.13
    3. 如何封装查询条件与查询结果到map中
    Java 实现网站当前在线用户统计
    sell-- wordPOI
  • 原文地址:https://www.cnblogs.com/xuwenwei/p/14408448.html
Copyright © 2020-2023  润新知