首页 > 编程语言 >Python: yield from

Python: yield from

时间:2022-09-19 16:25:16浏览次数:52  
标签:Python send yield value dubious time print

 

import time


def dubious():
    print(f"\033[32;40;7m{'dubious start'}\033[0m")
    while True:
        send_value = yield
        if send_value is None:
            break
        commence = time.time()
        time.sleep(send_value)

    print('in dubious', time.time() - commence)
    # print('in dubious')
    return time.time() - commence
    # return 'return from dubious'


def grouper():
    while True:
        yield_from_value = yield from dubious()
        print('in grouper', yield_from_value)


g = grouper()
print('{0} {1} {0}'.format('~' * 20, 1))
print('next1 =', next(g))
print('{0} {1} {0}'.format('~' * 20, 2))
print('next2 =', g.send(2))
print('{0} {1} {0}'.format('~' * 20, 3))
print('next3 =', g.send(None))
print('{0} {1} {0}'.format('~' * 20, 4))
print('next4 =', g.send(None))

 

 

 

# grouper 死循环,每一次循环都会生成一个新的dubious generator,不断从dubious generator取值,最后捕获StopIteration,把dubious generator的StopIteration的异常 exc.value赋值给yield_from_value
# 此时,grouper的第一轮循环结束,再次进入while True循环,进行相同过程


标签:Python,send,yield,value,dubious,time,print
From: https://www.cnblogs.com/dissipate/p/16708040.html

相关文章

  • 力扣92(java&python)-反转链表Ⅱ(中等)
    题目:给你单链表的头指针head和两个整数 left和right,其中 left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例1:输入:head=......
  • python主文件调用其他文件函数的方法
    关键:from文件名import函数名主文件(main.py)需要和包含子函数的文件(fun_cal_modulus8.py)放到同一路径下fun_cal_modulus8.pyfromnumpyimport*#8水平defc......
  • Python: 取消numpy科学计数法
    Numpy中默认是使用科学计数法来显示数据的,但是这种做法往往不利于我们观测数据,比如坐标数据等。那么如何取消numpy科学计数法呢,请往下看。np.set_printoptions()import......
  • 基于Python的求职招聘管理系统Django企业招聘管理系统(源码调试+讲解+文档)
    ......
  • python GUI编程
    GUI英文全称是GraphicalUserInterface,中文为图形用户接口。tkinter是pythonGUI编程的一个库。主要分为三步,首先建立一个窗口(设置参数),然后在窗口上放置组件(文本框、......
  • python 网络编程
    IP地址联网设备(电脑)每次介入网络,都会按照网络的规则,分配身份证号码,每个IP地址对应一个设备。每次进入网络IP地址未必相同。查看电脑IP地址windows:ipconfigIP地址就是I......
  • Python: __slots__
     __slots__定义为类属性,约束实例属性,类定义__slots__后,实例就没有__dict__ 子类和父类都定义__slots__后,子类可有全部__slots__属性  父类存在__slots......
  • python函数参数传递 可更改对象 不可更改对象
    1、函数分为内联函数和自定义函数2、参数传递:在python中,类型属于对象,变量是没有类型的例如:[1,2,3] 是List类型,"Runoob" 是String类型,而变量a是没有类型,她仅仅......
  • python lambda创建匿名函数
    注意:lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空......
  • Python--不定长参数
    不定长参数:在定义函数的时候,参数的个数不是固定的。未来的调用者,可能自由选择不传或者传几个或者传很多定义函数:1、*args    在定义函数是用*args来接受,其......