首页 > 编程语言 >三秒看懂Python yield

三秒看懂Python yield

时间:2023-06-21 15:25:01浏览次数:48  
标签:异步 Python 三秒 yield test print 执行

业务场景:一个FastAPI构建的网关,数据进来时立即给予一次响应,表示:“收到,我已开始执行。”,然后分发任务另起一个线程异步执行。
原本代码写的在异步里又起了一个异步等任务执行,这样不影响下面的return立刻响应。逻辑看起很繁琐,那有没有办法,能让函数在"return":“收到”之后,继续执行呢?这时候题主想到了yield。

以上内容与正题无关。

def test():
    for i in range(2):
        if i == 0:
            a = 'test函数已经开始执行'
        else:
            a = 'test函数已经执行结束'
        yield a
        print("执行中")


g = test() # 一个生成器对象
print('第一次调用:',next(g))
print('='*10)
print('第二次调用:',next(g))

image

我觉得这个demo比网上绝大部分文章更能一眼看懂这个yield是个咋回事。当然,这个用的很浅。

标签:异步,Python,三秒,yield,test,print,执行
From: https://www.cnblogs.com/thx2199/p/17496274.html

相关文章

  • python如何用openpyxl 创建表格,写入数据
    1.安装openpyxl库,可以选择豆瓣源,直接可执行,是一次性的.不需要设置.pipinstallopenpyxl-ihttp://pypi.douban.com/simple--trusted-hostpypi.douban.com 2.我们这里创建一个表(不是打开本地),并插入数据'sandx'是设置表中单表sheet的标题栏.插入数......
  • python代码-基于深度强化学习的微能源网能量管理与优化策略研究 关键词:微能源网;能量管
    python代码-基于深度强化学习的微能源网能量管理与优化策略研究关键词:微能源网;能量管理;深度强化学习;Q-learning;DQN内容::面向多种可再生能源接入的微能源网,提出一种基于深度强化学习的微能源网能量管理与优化方法。该方法使用深度Q网络(deepQnetwork,DQN)对预测负荷、风光等可......
  • 基于模型强化学习的离网微电网终身控制Python源代码
    基于模型强化学习的离网微电网终身控制Python源代码离网微网的终身控制问题包括两个任务,即对微网设备的状态进行估计和通过预测未来消费量和可再生产量来考虑不确定性的运行规划。有效控制的主要挑战来自于随时间发生的各种变化。提出了一个用于农村电气化离网微电网建模的开源强......
  • Python 转换为元组类型
    给对象添加一个__iter__函数:classCover:def__init__(self,temp,accel_x,accel_y,accel_z,cover_status):self.temp=tempself.accel_x=accel_xself.accel_y=accel_yself.accel_z=accel_zself.cover_status=......
  • 使用python下载某易云歌曲
    1、某易云的外链地址:url='http://music.163.com/song/media/outer/url?id='+歌曲的id值+'.mp3' 如:http://music.163.com/song/media/outer/url?id=1974443814.mp32、通过歌曲id下载:importrequestsimportosimportbs4fromseleniumimportwebdriverfro......
  • python请求有关ja3指纹问题
    遇见一个网站采集,无论怎样都返回空数据(实际上是有数据的),但是抓包下来又确实是那样的,请教了一些人推测是指纹验证,拜读了网上其他大佬的博客文章后实验了一下,发现确实是这个问题!第一次知道tcp还有这个东西,让我大受震撼,值此搬运一下。参考链接及来源:Python爬虫进阶必备|JA3指......
  • python.制图.饼状图
    1defsendMsgtemplate_card(fail,passnum,casename,casetime,path):importpandasaspdimportmatplotlib.pyplotasplt#将测试结果转换为数值类型data1={'errors':'0','failures':fail,'skipped':'1'......
  • Ubuntu安装管理不同版本的python
    ubuntu多个版本安装背景:本地环境Ubuntu22.0464-bit,默认安装python3.10.6,未安装pip,venv需求:安装python3.8,并安装两版本对应pip,venv1增加PPA软件源deadsnakessudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:deadsnakes/ppa2跟新系统的......
  • 通用密钥,无需密码,在无密码元年实现Passkeys通用密钥登录(基于Django4.2/Python3.10)
    毋庸讳言,密码是极其伟大的发明,但拜病毒和黑客所赐,一旦密码泄露,我们就得绞尽脑汁再想另外一个密码,但记忆力并不是一个靠谱的东西,一旦遗忘密码,也会造成严重的后果,2023年业界巨头Google已经率先支持了Passkeys登录方式,只须在设备上利用PIN码解锁、指纹或面部辨识等生物识别方式,即可验......
  • PostgreSQL 通过python 监控逻辑复制
    上期是讲逻辑复制,本期是通过PYTHON来对逻辑复制中的配置参数,publication定义,打印不适合进行逻辑复制的表,打印没有在使用的复制槽,另外包含当前发布端和接收端两边的LSN对比。以下是代码,对于逻辑复制中主要的监控点有1 是不是存在复制槽不使用的情况2 是不是存在主库和从库之......