美文网首页
python 生成器

python 生成器

作者: 椎名____ | 来源:发表于2020-03-30 18:55 被阅读0次

python 使用生成器来对延迟操作进行支持,仅在需要用到时产出结果。

创建生成器的2种方式:

1. 使用for循环(for循环需要放在()括号内)
    eg: sg=(x*x for x in range(10))

2. 调用带有yield语句的函数。
    先创建带有yield语句的函数,然后调用该函数得到生成器。
    eg:

def test (val ,step ):
        print("函数开始执行")
        cur=0
        for i in range(val):
              cur+=i*step
              yield cur

    

yield 作用

1. 冻结操作,每次返回值
2. 调用yield函数程序不会立即执行,需要调用__next__方法程序才会继续执行,执行到yield处程序返回值后冻结操作。

生成器的方法

1. send(): send方法与next方法相似,但send方法可以接受传递一个参数。即:send方法在程序外部传递参数,yield接收参数。第一次获取生成器的值时应该使用next方法,如果非要使用send则传递的参数应该为None。

2. close():关闭生成器。

3. throw(): 在yield处抛出异常。

相关文章

网友评论

      本文标题:python 生成器

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