zoukankan      html  css  js  c++  java
  • 生成器函数进阶

    使用生成器

    def generator():
        print(123)
        yield 1
        print(456)
        yield 2
    g = generator()
    ret = g.__next__()
    print(ret)
    ret = g.__next__()
    print(ret)

    send

    def generator():
        print(123)
        content = yield 1
        print("====",content)
        print(456)
        yield 2
    g = generator()
    ret = g.__next__()
    print(ret)
    ret = g.send("hello")
    print(ret)

    send 获取先一个值的效果和next基本一致,只是在获取下一个值的时候,给上一个值的位置传递一个数控

    注意:第一次使用生成器器的时候,必须要使用next获取下一个值

       最后一个yield不能接受外部的值

    获取移动平均值

    每给一个数取一次平均值

    def average():
        sum = 0
        count = 0
        avg = 0
        while True:
            num = yield avg   #在这里返回
            sum += num
            count += 1
            avg = sum/count
    
    avg_g = average()
    avg_g.__next__()
    avg1 = avg_g.send(10)
    avg1 = avg_g.send(20)
    print(avg1)

    from

    def generator():
        a = "ABCDE"
        b = "12345"
        yield from a
        yield from b
    g = generator()
    for i in g :
        print(i)
    
    执行结果:
    A
    B
    C
    D
    E
    1
    2
    3
    4
    5
  • 相关阅读:
    h5移动开发css
    js 小数相加异常
    h5上滑刷新(分页)
    js中的 !!
    图片懒加载(延迟加载)原理及实现
    作用域内优先级及this指针
    函数的属性、方法和构造函数
    判断是否为严格模式
    匿名函数递归调用自身
    闭包
  • 原文地址:https://www.cnblogs.com/wanglan/p/9542747.html
Copyright © 2011-2022 走看看