zoukankan      html  css  js  c++  java
  • send()和next()

    #send

            send 获取下一个值的效果和 next 基本一致,走到第一个yield结束  (作用范围一模一样)

            send 在获取下一个值的时候会给上一个 yield 的位置传递一个数据 

                    #第一次使用生成器函数,不能用要用 next 获取下一个值

                    #函数中的最后一个 yield 不能接受外部的值

    yield from

    计算平均值

    def wrapper(func):
        def inner(*args,**kwargs):
            ret = func(*args,**kwargs)
            ret.__next__()
            return ret
        return inner
    
    @wrapper
    def average():
        sum = 0
        count = 0
        avg = 0
        while True:
            num = yield avg
            sum += num
            count += 1
            avg = sum/count
            
    avg_g = average()
    while 1:
        number = int(input('input a number:'))
        ret = avg_g.send(number)
        print(ret)
    View Code

  • 相关阅读:
    docker命令总结
    VulToEs
    MYSQL
    MoonStack
    Spring mvc json null
    MySQL
    极光推送
    坑爹的RockSaw和坑爹的windows7
    App接口设计思路
    CSUOJ 1329 一行盒子(数组模拟链表)
  • 原文地址:https://www.cnblogs.com/Hxx0916/p/9553745.html
Copyright © 2011-2022 走看看