标签:特点 tail sleep time 报错 read 生成 print func
# 生成器 -- 迭代器: 区别生成器节省内存
# 1:生成器函数:
# 带有yield关键字
# 执行函数之后的返回值个生成器,函数内的代码并不会真正执行
# 想让生成器往外吐数据 需要使用next方法
# 监听文件末尾追加的例子
# def tail():
# f=open(‘霍现宇‘,‘r‘,encoding=‘utf-8‘)
# f.seek(0,2)
# while True:
# line= f.readline()
# if line :
# yield line
# import time
# time.sleep(0.1)
# g=tail()
# for i in g:
# print(i.strip()) ----------------------报错
# def func():
# print(‘*‘*10)
# a=yield 5
# # print(a)
# yield 10
# g=func()
# num=g.__next__()
# print(num)
# num2=g.send(‘alex‘)
# print(num2)
# 从哪一个yield开始执行,就把一个值传给了那个yield
# send不能用在第一个触发生成器
# 生成器函数中有多少个yield就必须有多少个next+send
# def func():
# a=‘AB‘
# b=‘CD‘
# yield from a
# yield from b
# 方法1
# 方法2 # for i in a:
# yield i
# for i in b:
# yield
# 方法3 # yield ‘A‘
# yield ‘B‘
# yield ‘C‘
# yield ‘D‘
# ‘A‘,‘B‘,‘C‘,‘D‘
# # 需要返回4次
# g=func()
# for i in g:
# print(i)
# 生成器函数: 生成一个生成器的函数
# 生成器的本质参数迭代器
# 生成器函数的特点:
# 带有yield关键字
# 且调用之后 函数内的代码不执行
#
# 触发执行的三种方式:
# next send 执行几次拿几个数据 可能会遇到取完的情况会报错
# for循环 每次取一个 取完为止 for循环不会报错
标签:特点 tail sleep time 报错 read 生成 print func
原文地址:http://www.cnblogs.com/QQ279366/p/7804249.html