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

    文章

    7530

    浏览量

    128717
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
收藏 人收藏

    评论

    相关推荐

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

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

    嵌入式学习-ElfBoard ELF 1板卡-移植python3.6.9

    功。(2)清除编译临时生成的中间文件,为交叉编译做准备:elf@ubuntu:~/work/Python-3.6.9$ sudo make clean5.交叉编译python:(1)进入
    发表于 01-24 16:50

    【飞腾派4G版免费试用】+GPIO口使用

    在使用openkylin的情况下,可使用GPIO资源来控制外设。但它是要求具备root使用权,否则无权使用。为此困惑了很久,最终在群友的帮助下才解决了这个难题。 在进入GPIO目录后,其内容如图1
    发表于 01-08 14:20

    Python2与Python3的差异

    Python2与Python3是两个不同的版本,它们在语法、功能和性能等方面存在一些差异。下面是对Python2和Python3的详尽、详实、细致的比较,分为以下几个方面: 语法差异
    的头像 发表于 11-23 16:48 350次阅读

    Python中元类的作用

    1.什么是类 在理解元类之前,我们必须先掌握Python中的类(class)。 和大多数语言一样,Python中的类知识用来描述如何“生成一个对象”: 但是,在Python中,类不仅能
    的头像 发表于 11-02 11:18 235次阅读
    <b class='flag-5'>Python</b>中元类的作用

    如何用Python自动套用模板批量生成PDF文档

    办最高效的事。 今天就给大家讲讲如何用Python自动套用模板批量生成下方这样的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 超详细
    的头像 发表于 10-31 10:56 685次阅读
    如何用<b class='flag-5'>Python</b>自动套用模板批量<b class='flag-5'>生成</b>PDF文档

    Python SDK包的使用

    Shodan Web端非常好用,但如果我们有从 Python 搜索的需求怎么办? 没关系,Shodan 官方也提供了 Python SDK 包,下面就来讲讲这个 SDK 包的使用。 1.准备 开始
    的头像 发表于 10-30 15:51 426次阅读
    <b class='flag-5'>Python</b> SDK包的使用

    如何用Python自动套用模板批量生成PDF文档

    今天就给大家讲讲如何用Python自动套用模板批量生成的PDF文档。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 超详细Python
    的头像 发表于 10-17 10:54 502次阅读
    如何用<b class='flag-5'>Python</b>自动套用模板批量<b class='flag-5'>生成</b>PDF文档

    如何用Python生成自定义二维码

    MyQR是Python的一个库,它可以用来方便地生成艺术、自定义和极简QR码。MyQR可以生成黑白、彩色、GIF动图等多种样式的QR码。 安装MyQr pip install MyQr 1.
    的头像 发表于 09-12 17:11 596次阅读
    如何用<b class='flag-5'>Python</b><b class='flag-5'>生成</b>自定义二维码

    Java开发人员对于GenAI以及Python采用率增长的看法

    Python生成式 AI 的首选编程语言,随着生成式 AI 领域的大热,相关的 Python 框架和库自然也受到了极大关注。
    的头像 发表于 08-27 11:50 538次阅读
    Java开发人员对于GenAI以及<b class='flag-5'>Python</b>采用率增长的看法

    如何为PyInstaller命令行添加OpenVINO依赖性,从OpenVINO python脚本生成功能 .exe文件?

    执行此命令行以从 OpenVINO python 脚本创建 build.exe 文件: pyinstaller --onefile --add-data \"D
    发表于 08-15 07:16

    基于用户的许可1.2版用户指南

    基于用户的许可将Arm产品的使用权绑定到用户。此绑定允许单个用户许可证由该用户在多个设备上用于同一产品。
    发表于 08-08 07:44

    python语言表推导式和生成器表达式特性

    今天我想向你介绍python语言的两个非常有用的特性:列表推导式和生成器表达式。这两个特性都可以让你用一行简洁的代码来创建一个序列,而不需要写循环或者函数。但是它们之间也有一些重要的区别,我们一起
    的头像 发表于 07-20 09:51 650次阅读
    <b class='flag-5'>python</b>语言表推导式和<b class='flag-5'>生成</b>器表达式特性

    Python中的生成器是什么?它们的效率和可用性如何?

    Python 是一种以灵活性和多功能性着称的语言,它提供了一种称为生成器的强大功能。
    发表于 07-19 14:33 325次阅读

    如何使用Python脚本调试赛灵思PCIe设计?

    现在,您不仅可以使用 Python 脚本执行调试分析,更重要的是,借由 Vivado ILA 所生成的 ILA 文件可以进一步简化此操作。通过将 *.ila 扩展名重命名为 *.zip 然后将生成的文件解压,即可将其转换为 CS
    的头像 发表于 06-26 09:20 704次阅读
    如何使用<b class='flag-5'>Python</b>脚本调试赛灵思PCIe设计?