day14生成器

Posted .

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day14生成器相关的知识,希望对你有一定的参考价值。

# 生成器 -- 迭代器: 区别生成器节省内存
# 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循环不会报错

以上是关于day14生成器的主要内容,如果未能解决你的问题,请参考以下文章

day14............生成器, 三元,推导

day14--列表推导式,生成器表达式

day14

day14,列表推导式,生成器表达式,内置函数

python—day14内置函数2列表生成式与生成器表达式模块

day 3 list列表生成式