python之next和send用法详解
如果send不携带参数,那么send(None) 和next()的作用的相同的,如:
def a():
print('aaa')
p = yield ''
#print(p)
print('bbb') r = a()
print(next(r))
#print(r.send(None))
#使用next(r) 和 r.send(None)输出的结果都是
#注意的是,这里的p变量的值都是None
aaa
123
如果send的参数不是None,则是把yield xx当成一个表代式,且把send的参数的值赋给了p;而后的操作同next一样,如:
def a():
print('aaa')
p1 = yield ''
print('bbb')
if (p1 == 'hello'):
print('p1是send传过来的')
p2= yield ''
print(p2) r = a()
next(r)
r.send('hello') #结果为
aaa
bbb
p1是send传过来的
说一下执行的顺序,首先a()是个生成器;第一次执行要么next(r)要么r.send(None),不能使用r.send('xxxxx');这会报错的。第一次执行时next(r)时,首先打印出aaa,
然后遇到yield即跳出,然后执行r.send('hello')时,p1则被赋值为hello了,然后继续接着上次运行,下一步打印出bbb,然后打印出'p1是send传过来的',当再次遇到第二个yield时跳出,所以结果只打印了三行,后面的p2没有执行。
python之next和send用法详解的更多相关文章
- Python内置OS模块用法详解
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示.刚入门的读者千万不要错过! 很多人学习python,不知 ...
- Python中scatter函数参数用法详解
1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matp ...
- python linecache模块读取文件用法详解
linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. linecache.getlines(filename) 从名为filename的文件中得到 ...
- python中os.walk的用法详解
python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os f ...
- Python中with...as...的用法详解
简介 with是从Python2.5引入的一个新的语法,它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和资源分配释放相关代码统统去掉,简化try-.exc ...
- Python中生成器和yield语句的用法详解
Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...
- [转]使用python来操作redis用法详解
转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...
- 【python】redis基本命令和基本用法详解
[python]redis基本命令和基本用法详解 来自http://www.cnblogs.com/wangtp/p/5636872.html 1.redis连接 redis-py提供两个类Redis ...
- python format 用法详解
format 用法详解 不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 单个参数可以多次输出,参数顺序可以不相同 填充方式十分灵活,对齐方式十分强大 官方推荐用的方式,%方式将会在后面的版 ...
随机推荐
- LeetCode Array Easy 217. Contains Duplicate
Description Given an array of integers, find if the array contains any duplicates. Your function sho ...
- koa2 的处理请求体koa-bodyparser koa-router 的中间件的学习
1.官网 https://www.npmjs.com/package/koa-router https://www.npmjs.com/package/koa-bodyparser 2. demo / ...
- CSIC_716_20191217【事务、视图、触发器、存储过程、索引】
事务: 事务保证对数据操作时的安全性,事务中的代码要么一起成功,要么一起失败. 事务以 start transaction 开始,中间可以写诸多个sql 语句对数据库进行操作, 以rollback ...
- leetcood学习笔记-26-删除排序数组中的重复项
题目描述: 第一次提交: class Solution: def removeDuplicates(self, nums) -> int: for i in range(len(nums)-1, ...
- MySQL常用操作2
MySQL常用操作2 判断函数 IF(expr, value1, value2) -- 如果表达式expr为true,则返回value1,否则返回value2 IFNULL(value1, val ...
- 深入理解Magento - 第六章 - 高级Magento模型
我们讲过Magento有两种模型,简单模型和EAV(Entity Attribute Value)模型.上一章我们讲过所有的Magento模型都是继承自Mage_Core_Model_Abstract ...
- python 模块-json
1.JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Lan ...
- (转)OpenFire源码学习之十五:插件开发
转:http://blog.csdn.net/huwenfeng_2011/article/details/43418493 Plugin接口规范 插件是openfire功能的增强表现,它的主要任务: ...
- selenium之 文件上传所有方法整理总结
本文转载“灰蓝”的原创博客.http://blog.csdn.net/huilan_same/article/details/52439546 文件上传是所有UI自动化测试都要面对的一个头疼问题,今天 ...
- SPSS把一个数据样本随机分为两部分
SPSS把一个数据样本随机分为两部分 1. 打开SPSS数据文件. 2. 选择DATA>SELECT CASES,打开"Select Cases"对话框 3. 选择&qu ...