yield 浅析

先来一段代码:

def fun1():
for i in range(5):
yield i
print("继续调用继续执行") gen1 = fun1()
print(gen1) for i in gen1:
print(i) """# 执行结果:
<generator object fun1 at 0x0365DEB0>
0
继续调用继续执行
1
继续调用继续执行
2
继续调用继续执行
3
继续调用继续执行
4
继续调用继续执行
"""

直接得到结果

  1. yield存在于函数体中, 用于返回生成器对象, 使用了yield的函数就叫做生成器.
  2. 迭代生成器对象时, 每迭代一次便返回函数体继续执行, 直到没有结果为止
  3. 另外有 next(迭代对象[, 默认参数]) 可用于迭代生成器对象, 但每次只会得到一次结果, 多次迭代可得到全部结果, 结束时会返回异常[或默认参数].

最新文章

  1. FFT 快速傅里叶变换浅析
  2. 微信浏览器是移动端的IE6?微信升级内核后Html5和CSS3兼容性总结
  3. jquery-ajax-async之浏览器差异
  4. C++中为什么要用虚函数、指针或引用才能实现多态?
  5. 转:命令和查询责任分离(CQRS)架构模式
  6. [Eclipse]代码已被写入关于如何切换到unix在新行
  7. STM32+NRF24L01无线(转)
  8. Zabbix3.0部署最佳实践
  9. Injection of autowired dependencies failed
  10. python实现 双向循环链表
  11. C# 数组Array
  12. 2 JAVA 项目名称前红色叹号如何解决
  13. sweetalert插件的使用
  14. winscp的root连接ubuntu“拒绝访问”的解决方法
  15. Java 多线程 interrupt方法
  16. 警惕ASP.NET MVC中的ValidateInputAttribute
  17. 继承 多态 java相关基础知识
  18. 从 SVM 到多核学习 MKL
  19. C++基础知识 基类指针、虚函数、多态性、纯虚函数、虚析构
  20. BZOJ4888 Tjoi2017异或和(树状数组)

热门文章

  1. Chrome 神器,神奇的技巧
  2. BigDecimal的保留位数和四舍五入的方法
  3. LightGBM GPU python版本安装
  4. C++中void和void*指针的含义 (指针类型的含义)
  5. DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案
  6. Bug集锦-Spring Cloud Feign调用其它接口报错
  7. Java-JVM 自定义类加载器
  8. java 获取本地 mac 地址
  9. fmri格式相关简介————转自网络
  10. [SQL]学习中遇到的错误