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语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146114
  • python
    +关注

    关注

    58

    文章

    4883

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GS4901B/GS4900B:视频与音频时钟及定时生成的理想

    GS4901B/GS4900B:视频与音频时钟及定时生成的理想选 在电子设计领域,时钟和定时生成器对于确保系统的稳定运行和精确同步至关重要。今天,我们就来深入探讨一下 Gennum 公司
    的头像 发表于 04-15 10:10 65次阅读

    AD9547:网络时钟生成与同步的理想

    AD9547:网络时钟生成与同步的理想选 在电子设计领域,时钟的精准性和稳定性对于系统的正常运行至关重要。AD9547作为一款双/四输入网络时钟生成器/同步器,为众多系统提供了出色的时钟同步
    的头像 发表于 04-13 11:05 159次阅读

    探秘ICS841402I:PCIe与sRIO时钟生成的理想

    探秘ICS841402I:PCIe与sRIO时钟生成的理想选 在电子设计领域,时钟信号的稳定性和准确性对于系统的性能至关重要。今天,我们就来深入了解一款优化的PCIe和sRIO时钟生成
    的头像 发表于 04-12 12:40 397次阅读

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    摘要 VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个用例介绍了一种使用路径变量和Visual Studio代码将Python连接到VirtualLab
    发表于 03-31 09:39

    强强联合:imc FAMOS内嵌Python接口,提高分析效率!

    德国知名车厂工程师首选将Python和imcFAMOS结合起来用于分析测试和测量数据——这是否有意义?事实上这非常有意义。Python和imcFAMOS可以很好地相互补充。Python作为一种编程
    的头像 发表于 03-18 09:05 458次阅读
    强强联合:imc FAMOS内嵌<b class='flag-5'>Python</b>接口,提高分析效率!

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越选 引言 在当今的电子设计领域,PCIe技术的广泛应用对时钟生成器提出了更高的要求。Renesas的9FGV0431作为一款专为
    的头像 发表于 03-15 17:25 1091次阅读

    【iotauth 】 IOT 鉴库的技术实践

    在智能家居、工业互联网等复杂场景中,设备与平台之间的信任建立是系统稳定运行的前提。iotauth鉴库通过模块化设计与多层级安全策略,实现了从设备注册、身份验证到会话管理的全流程覆盖,助力开发者高效
    的头像 发表于 02-25 17:13 216次阅读
    【iotauth 】 IOT 鉴<b class='flag-5'>权</b>库的技术实践

    探索RC2121xA评估板:PCIe时钟生成的理想

    探索RC2121xA评估板:PCIe时钟生成的理想选 在电子设计领域,时钟生成对于PCIe Gen合规和商业汽车应用至关重要。Renesas的RC2121xA评估板(EVB)为工程师提供了一个强大
    的头像 发表于 12-29 09:50 502次阅读

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    FreeRTOS 空闲任务

    FreeRTOS 中很多人会注意到为什么有一个叫IDLE task的任务占用了CPU百分九十多的使用权,但是这个任务并没有自己手动创建。原因就是这个空闲任务是系统自己创建的,每当系统没有其他任务要运行时
    发表于 12-04 07:35

    termux调试python猜数字游戏

    实现(Python版) ```python import random def guess_number(): # 生成随机数字(1-100) secret_number
    发表于 08-29 17:15

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

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

    matlab代码编译为CAO_pythonpython库,其中cp_Main_python.m为入口文件,编译后生成的文件有mccExcludedFiles.log、setup.py
    发表于 07-18 10:40