代码如下:

  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. __author__ = '人生入戏'
  4.  
  5. def use(name):
  6. print("%s开始捡屎了。。。" % name)
  7. while True:
  8. res = yield
  9. print("%s捡了%s个屎" % (name,res))
  10.  
  11. def product(name_mon):
  12. mon = use(name_mon)
  13. mon.__next__()
  14. for i in range(10):
  15. print("儿子又拉了一个屎")
  16. i+=1
  17. mon.send(i)
  18. product("妈妈")

这叫协程,又叫微线程。

运行结果如下:

  1. 妈妈开始捡屎了。。。
  2. 儿子又拉了一个屎
  3. 妈妈捡了1个屎
  4. 儿子又拉了一个屎
  5. 妈妈捡了2个屎
  6. 儿子又拉了一个屎
  7. 妈妈捡了3个屎
  8. 儿子又拉了一个屎
  9. 妈妈捡了4个屎
  10. 儿子又拉了一个屎
  11. 妈妈捡了5个屎
  12. 儿子又拉了一个屎
  13. 妈妈捡了6个屎
  14. 儿子又拉了一个屎
  15. 妈妈捡了7个屎
  16. 儿子又拉了一个屎
  17. 妈妈捡了8个屎
  18. 儿子又拉了一个屎
  19. 妈妈捡了9个屎
  20. 儿子又拉了一个屎
  21. 妈妈捡了10个屎

Python生成器主要用法的更多相关文章

  1. Python生成器的用法

    生成器,一定情况下可以节省很多空间 比如: >>> b = (x for x in range(10)) >>> b <generator object &l ...

  2. 浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  3. python之函数用法xrange()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法xrange() #xrange() #说明:返回一个生成器 #xrange做循环的性 ...

  4. 用Python 的一些用法与 JS 进行类比,看有什么相似?

    Python 是一门运用很广泛的语言,自动化脚本.爬虫,甚至在深度学习领域也都有 Python 的身影.作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python (比如默认参数.解构赋值. ...

  5. Python高阶用法总结

    目录 1. lambda匿名函数 1.1 函数式编程 1.2 应用在闭包 2. 列表解析式 3. enumerate内建函数 4. 迭代器与生成器 4.1 迭代器 4.3 生成器 5. 装饰器 前言: ...

  6. python操作redis用法详解

    python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...

  7. 【python之路29】python生成器generator与迭代器

    一.python生成器 python生成器原理: 只要函数中存在yield,则函数就变为生成器函数 #!usr/bin/env python # -*- coding:utf-8 -*- def xr ...

  8. Generator - Python 生成器

    Generator, python 生成器, 先熟悉一下儿相关定义, generator function 生成器函数, 生成器函数是一个在定义体中存有 'yield' 关键字的函数. 当生成器函数被 ...

  9. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

随机推荐

  1. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  2. java 面试,如何提升自己的实力,摘自 java web轻量级开发面试教程

    本内容摘自 java web轻量级开发面试教程 其中有一段讲述到了实习经验对找工作的帮助 1.2.2大学阶段的实习经验能帮到你 一般公司在筛选简历时,一个非常重要考察的要点是相关经验的工作年限,说一个 ...

  3. 记录一次https证书申请失败的案例

    部分站点由于使用了大量的域名,会导致 auto-ssl 配置的内存不够用,导致证书申请失败.需要做以下调整 nginx.conf 中 lua_shared_dict auto_ssl 调整为 128m ...

  4. Spring中的AOP开发

    1.代理模式 找个人将你原本想做的事情给做了. 三个部分组成: 抽象主题角色:真实主题和代理主题的共同接口. 真实主题角色:定义了代理角色所代表的真实对象. 代理主题角色:含有对真实主题角色的引用.代 ...

  5. KVM套件-linux基础

    KVM套件 使用KVM的虚拟机,通过KVM的虚拟机克隆功能,提高效率,避免在实验过程中重装系统. 另外,在LINUX系统上使用KVM的虚拟化,可以获得更好性能,且可以提前熟悉企业级虚拟化技术. 过程: ...

  6. Django创建模板、URL模式、创建视图函数

    1.在应用目录下创建模板(templates目录) 在模板目录下创建archive.html <!DOCTYPE html> <html lang="en"> ...

  7. Java GUI学习心得

    虽然GUI的应用已经不是特别广泛了,但是如果了解一点,可以做些自己想要的工具,最近做了一个工具(是什么就不提了),当然碰到很多的问题,都意义解决了,现在分享出来. 1.关于窗体面板的显示问题 可能会遇 ...

  8. 我的前端故事----我为什么用GraphQL

    背景 今年我在做一个有关商户的app,这是一个包含商户从入网到审核.从驳回提交到入网维护的完整的生命周期线下推广人员使用的客户端软件,但故事并没有这么简单... 疑问 随着app的逐渐完善,遇到的问题 ...

  9. markdown常用语法教程

    1. 标题 总共六级标题,"#"号后面最好加空格,美观可以在后面加上对应数量的"#" # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ### ...

  10. bootstrap 基础(一)

    1 bootstrap简介 bootstrap是Twitter公司的两名前端设计师设计的. bootstrap是一款基于HTML.CSS和JavaScript的一个前端框架. bootstrap的特点 ...