Python生成器250224

  • 是由函数与yield关键字创造出来的写法,在特定情况下,可以帮助我们节省内存
  • 执行一个生成器函数,函数体代码不会运行,会返回一个生成器对象
  • 要想执行函数体内容,就需要使用这个生成器对象来执行
python 复制代码
def func():
    print(123)
    yield 3456
    print(456)
    yield 666
    print(789)
    # return None,程序运行到此处会报错,stopIteration,代表生成器函数执行完毕了
v1 = func()
n = next(v1)# 将进入生成器函数内部来执行其代码,会在第一个yield处暂停下来,n接收3456
n = next(v1)# 从第一个yield下面代码开始执行,遇到下一个yield处暂停下来
  • 一般情况下,使用for循环来调用生成器
python 复制代码
def func():
    print(123)
    yield 3456
    print(456)
    yield 666
    print(789)
data = func()
for item in data:
    print(item)# 会帮助过滤错误
相关推荐
tachibana23 小时前
使用for range 的时候,它的地址会发生变化吗?
开发语言·后端·golang·go·语法
Smoothcloud润云3 小时前
PyTorch推理服务动态批处理实战:兼顾吞吐与延迟
人工智能·pytorch·python·深度学习·ai·gpu算力
码爸3 小时前
决策树介绍与示例
python·算法·机器学习
临床数据科学和人工智能兴趣组4 小时前
正则表达式的基础语法的基本符号
开发语言·人工智能·python·正则表达式·r语言·r语言-4.2.1·workbudyy
王中阳Go4 小时前
Go 后端转 AI:非科班怎么补?一张 3 列路线表(可保存)
开发语言·人工智能·后端·python·golang·大语言模型
计算机编程指导师4 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
geats人山人海4 小时前
java 4继承
java·开发语言
aqiu1111114 小时前
【C++算法打怪专栏】C++ `unordered_set` 常用初始化与插入方法总结
开发语言·c++·算法
众链网络5 小时前
Agent 的成本大头不在“写“,在“判断“:拆解专用决策模型的三层架构
java·开发语言·人工智能·微服务
周小董5 小时前
[1371]jdk管理工具
java·开发语言