代码如下:

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

这叫协程,又叫微线程。

运行结果如下:

妈妈开始捡屎了。。。
儿子又拉了一个屎
妈妈捡了1个屎
儿子又拉了一个屎
妈妈捡了2个屎
儿子又拉了一个屎
妈妈捡了3个屎
儿子又拉了一个屎
妈妈捡了4个屎
儿子又拉了一个屎
妈妈捡了5个屎
儿子又拉了一个屎
妈妈捡了6个屎
儿子又拉了一个屎
妈妈捡了7个屎
儿子又拉了一个屎
妈妈捡了8个屎
儿子又拉了一个屎
妈妈捡了9个屎
儿子又拉了一个屎
妈妈捡了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常用命令

    测试初学者常用的LINUX命令,不懂得的可加Q群答疑649017887 一.常用管理命令:1. shutdown -h now 关机命令2. shutdown -r now (reboot) 立即重启 ...

  2. mysql 数据库选定 创建 删除 变更

    use db_name select * from db_name.tbl_name 显示所有数据库 mysql> select schema_name from information_sch ...

  3. 图解如何安装MySQL5.0

    如何安装MySQL5.0数据库.. mysql-5.5.50-winx64下载地址: http://www.jb51.net/softs/363920.html 我的电脑因为提前安装了.所以需要卸载一 ...

  4. 递归调用里的性能问题(js)

    说明 这是在codewars.com上刷的一道js练习题,在此做个记录 问题描述 The Fibonacci sequence is traditionally used to explain tre ...

  5. 使用xorm工具,根据数据库自动生成 go 代码

    使用xorm工具,根据数据库自动生成 go 代码 引入 使用 golang 操作数据库的同学都会遇到一个问题 -- 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可 ...

  6. 线性代数-矩阵-【2】矩阵生成 C和C++实现

    矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵的运算封装成矩阵类.以C++为主进行详解. 点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Lia ...

  7. Ext.Ajax.request

    function create(){ var itstate = $("#myselect").val(); Ext.Ajax.request({ url: '/servlet/A ...

  8. jQuery给表单设置值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Visual Studio2017 远程调试 Remote Debugger

    前言 大家在使用vs打包后的文件部署到服务器后,有时候我们需要对线网的后台进行调试.但是它不像在VS中.这个时候我们该怎么调试呢? 微软想到了这一点,他们在 VS 中给我们提供了一个功能: Remot ...

  10. SQL Server锁类型

    SQL Server锁类型(SQL)收藏 1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项生 ...