0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python语言之await和yield from的对比

冬至配饺子 来源:缪斯之子 作者:肖新苗 2022-08-24 12:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

await和yield from对比

不同点:yield from 后面的值,要么是生成器,要么是最终为可迭代对象,而await后面只能跟async开头的方法

相同点: 都是产出结果,让出控制权,等待返回结果

例子说明

分别用await和yield from实现了等待协程完成的过程

async def req1_sub(param):
return param+10


async def req1(param):
res = await req1_sub(param)
res += 100
return res


def req2_sub(param):
res = yield param+10
return res


def req2(param):
res = yield from req2_sub(param)
res += 100
return res


def print_value(f, args):
try:
b = f.send(args)
except StopIteration as e:
print(f'{f.__name__}返回值 {e.value}')
return e.value
else:
print(f'{f.__name__}接收 {b}')
return b


g1 = req1(1)
print_value(g1, None)


g2 = req2(2)
res = print_value(g2, None)
print_value(g2, res)

'''
结果:
req1返回值 111
req2接收 12
req2返回值 112
'''


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 生成器
    +关注

    关注

    7

    文章

    322

    浏览量

    22509
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89596
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文了解Mojo编程语言

    资源受限环境,如物联网设备或实时控制系统。 总的来说,Mojo 的独特之处在于它填补了 Python 与底层语言之间的性能鸿沟,同时保持了开发者熟悉的语法和生态。随着其工具链的完善,Mojo 有望成为 AI 和高性能计算领域的重要工具。
    发表于 11-07 05:59

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux中创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    【HZ-T536开发板免费体验】4、使用蓝牙模块读取小米温湿度计的数据

    upgrade bluez 安装好工具后,可以先使用工具简单的测试下,例如扫描设备什么的。这里我们就跳过了。 然后,我们需要创建一个虚拟环境,好安装脚本需要的依赖,这里我们考虑使用Python脚本来抓取ble
    发表于 08-25 22:16

    C++ 与 Python:树莓派上哪种语言更优?

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++在物联网项目中同样广受欢迎且功能强大。那么,在树莓派项目中选择哪种语言更合适呢?Python因其简洁性、丰富
    的头像 发表于 07-24 15:32 649次阅读
    C++ 与 <b class='flag-5'>Python</b>:树莓派上哪种<b class='flag-5'>语言</b>更优?

    linux虚拟环境中调用Linux 版matlab编译的python库时出错

    ;, line 280, in _pir.get_paths_from_os() File \"/data/miniforge/envs/wjn_cao/lib/python
    发表于 07-18 10:40

    TaskPool和Worker的对比分析

    ,并提高系统的整体性能。 本文将从实现特点和适用场景两个方面来进行TaskPool与Worker的比较。 实现特点对比 表1 TaskPool和Worker的实现特点对比 实现
    发表于 06-18 06:43

    跟老齐学Python:从入门到精通

    础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python 编程无关,但与学习者未来程序员职业生涯有关的内容。 获取完整文档资料可下载附件哦!!!! 如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 06-03 16:10

    进程、线程、协程傻傻分不清?一文带你彻底扒光它们的\"底裤\"!

    :\"我去关火!\"( yield 控制权) 代码示例(Python异步爬虫): python import asyncio import aiohttp ​ async def fetch
    发表于 03-26 09:27

    零基础入门:如何在树莓派上编写和运行Python程序?

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本
    的头像 发表于 03-25 09:27 1533次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言Python的优势在于其简洁的语法、丰富的库和快速的开发周期,这使得它在某些嵌入式场景
    的头像 发表于 03-19 14:10 1200次阅读

    创建OpenVINO™ Python脚本,运行可执行文件时遇到的报错怎么解决?

    创建OpenVINO™ Python 脚本: from openvino.inference_engine import IECore ie = IECore() print(\"
    发表于 03-05 10:20

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2233次阅读

    gitee 支持的编程语言有哪些

    Gitee 支持的常见编程语言Python :一种广泛使用的高级编程语言,以其清晰的语法和代码可读性而闻名。 Java :一种面向对象的编程语言,被广泛用于企业级应用开发。 C+
    的头像 发表于 01-06 09:50 1109次阅读

    华为云 Flexus X 实例下的场景体验——小企业使用 Python 语言——超迅速搭建简单公网 API 接口服务

      前言 小企业为了快速搞定一些接口功能如果不使用 Python 的话相对来说复杂度还是很高的,这里我来通过【华为云 Flexus X 实例】来迅速的搭建一个 Python 的 WebApi 示例
    的头像 发表于 12-27 13:46 859次阅读
    华为云 Flexus X 实例下的场景体验——小企业使用 <b class='flag-5'>Python</b> <b class='flag-5'>语言</b>——超迅速搭建简单公网 API 接口服务

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言
    的头像 发表于 12-24 17:33 1475次阅读