day14-生成器进阶

发布时间:2019-06-11 21:21:06编辑:auto阅读(1915)

    1.send()

    '''
    def generator():
        print(123)
        yield 1
        print(456)
        yield 2
        print(789)
    
    g = generator()
    ret = g.__next__()
    print(ret)
    ret = g.send(None) # send的效果和_next_一样
    print(ret)
    '''
    
    def generator():
        print(123)
        content = yield 1
        print(content)
        print(456)
        yield 2
    
    g = generator()
    ret = g.__next__()
    print(ret)
    ret = g.send('hello') # send的效果和_next_一样
    print(ret)
    # send和_next_效果一样,他在打印出第二个yield之前,还将send里面的hello传给content,所以也会打印出hello。
    #result:
    # 123
    # 1
    # hello
    # 456
    # 2

    使用send注意事项:

    (1)第一次使用生成器,必须用_next_获取值。

    (2)最后一个yield,不能接收外部的值。

关键字