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

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

3天内不再提示

python之生成subgen的使用权

冬至配饺子 来源:缪斯之子 作者:肖新苗 2022-08-23 11:15 次阅读

读者

查看需要有一定的基础python,概念部分建议 阅读经典书籍: 百万的python 或者w3c school 或者 菜鸟教程

系列

这是一个系列,如遇到不明白的部分,可以回看前面的文章

功能

通过 gen gen 的使用权,即在 subgen() 时,subgen 的使用权,把的价值传递给 gen 的使用方,可以直接控制生成方的调用,生成 subgen 的使用权。亚根终止。

重复:如果yield from 后面是str list tple set map range,直接next()

例子说明

yield from的执行流程,并制作了一个模拟fake_yield_from,

源是c语言所写,可以自己研究

import inspect


def subgen():
res = yield 11
return res


def gen():
res = yield from subgen()
return res


def fake_yield_from(f):
# 模拟yield from的功能
result = None
if inspect.isgenerator(f):
try:
result = f.send(None)
except StopIteration as e:
result = e.value
else:
result = next(iter(f))
return result


def gen_fake():
res = yield fake_yield_from(subgen())
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}')


gs = [gen(), gen_fake()]
for g in gs:
print_value(g, None)
print_value(g, 2)

'''
结果:
gen接收 11
gen返回值 2
gen_fake接收 11
gen_fake返回值 2
'''



审核编辑:刘清

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

    关注

    180

    文章

    7618

    浏览量

    138270
  • python
    +关注

    关注

    56

    文章

    4812

    浏览量

    85173
收藏 人收藏

    评论

    相关推荐

    Python中的迭代器与生成

    Python迭代器与生成器 列表生成式 列表生成式也叫做列表推导式,它本身还是列表,只不过它是根据我们定义的规则来生成一个真实的列表。  
    的头像 发表于 02-20 10:43 81次阅读

    使用Python实现xgboost教程

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

    快手“可灵AI”软件著作获批

    近日,天眼查知识产权信息显示,北京快手科技有限公司自主研发的“可灵AI”软件著作已成功获得登记批准,版本号确定为V1.0。这一消息标志着快手在人工智能领域的技术研发取得了新的进展。 据公开资料显示
    的头像 发表于 11-29 13:50 526次阅读

    如何使用Python构建LSTM神经网络模型

    构建一个LSTM(长短期记忆)神经网络模型是一个涉及多个步骤的过程。以下是使用Python和Keras库构建LSTM模型的指南。 1. 安装必要的库 首先,确保你已经安装了Python和以下库
    的头像 发表于 11-13 10:10 705次阅读

    三行代码完成生成式AI部署

    OpenVINO2024.2版本跟之前版本最大的不同是OpenVINO2024.2分为两个安装包分别是基础包与生成式AI支持包,新发布的GenAI开发包支持C++与Python语言接口调用,支持多种
    的头像 发表于 08-30 16:49 507次阅读
    三行代码完成<b class='flag-5'>生成</b>式AI部署

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学、机器学习和深度学习等领域的首选语言。而在深度学习领域
    的头像 发表于 08-01 15:27 2589次阅读

    EtherCAT运动控制器上位机Python+Qt(一):链接与单轴运动

    PC上位机Python+Qt混合编程,助力智能制造高效开发。
    的头像 发表于 07-31 09:43 545次阅读
    EtherCAT运动控制器上位机<b class='flag-5'>之</b><b class='flag-5'>Python</b>+Qt(一):链接与单轴运动

    Python建模算法与应用

    Python作为一种功能强大、免费、开源且面向对象的编程语言,在科学计算、数学建模、数据分析等领域展现出了卓越的性能。其简洁的语法、对动态输入的支持以及解释性语言的本质,使得Python在多个平台
    的头像 发表于 07-24 10:41 720次阅读

    Python在AI中的应用实例

    Python在人工智能(AI)领域的应用极为广泛且深入,从基础的数据处理、模型训练到高级的应用部署,Python都扮演着至关重要的角色。以下将详细探讨Python在AI中的几个关键应用实例,包括机器学习、深度学习、自然语言处理、
    的头像 发表于 07-19 17:16 1615次阅读

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现 Pyt
    的头像 发表于 07-18 14:53 509次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。OpenCV-Python
    的头像 发表于 07-16 10:38 1522次阅读

    用pycharm进行python爬虫的步骤

    以下是使用PyCharm进行Python爬虫的步骤: 安装PyCharm和Python 首先,您需要安装PyCharm和Python。PyCharm是一个流行的Python集成开发环境
    的头像 发表于 07-11 10:11 1007次阅读

    云知声说话人识别引擎获得HUAWEI COMPATIBLE证书及认证徽标的使用权

    继山海大模型获得两项华为昇腾技术认证后,近日,经华为综合评测,云知声说话人识别引擎成功通过与华为Atlas 800 推理服务器(型号:3000)、Atlas 300I Pro推理卡的相互兼容性测试,正式获得HUAWEI COMPATIBLE证书及认证徽标的使用权
    的头像 发表于 05-27 18:12 855次阅读
    云知声说话人识别引擎获得HUAWEI COMPATIBLE证书及认证徽标的<b class='flag-5'>使用权</b>

    微软2024财年第三财季营收619亿美元,AI资本支出超出分析师预期

    借助与OpenAI的深度合作,微软推出生成式人工智能(genAI)工具,推动股价攀升,成功超越苹果成为全球市值最高的公司。微软获得了OpenAI的先进人工智能技术的独家使用权,正积极将这些技术融入到自身产品中,如Azure、Bing及Microsoft 365等。
    的头像 发表于 04-26 10:07 559次阅读

    如何使用Python生成四位随机数字

    为了实现这些目标,Python 为我们提供了random() 模块。random() 是一个内置的 Python 模块,用于生成随机数。
    的头像 发表于 04-15 12:47 834次阅读