day13生成器

day13生成器

# 生成器 —— 迭代器
# 生成器函数 —— 本质上就是我们自己写得函数
# 生成器表达式
#普通函数
# def generator():
# print(1)
# return 'a'
# ret = generator()
# print(ret)
#生成器函数:只要含有yield关键字的函数都是生成器函数
#yield不能和return共用且需要写在函数内部
def generator1():
print(1)
yield 'a'
#生成器函数:执行之后会得到一个生成器作为返回值
ret1 = generator1()
print(ret1)


print(ret1.__iter__())
print(ret1.__next__())

def generator():
print(1)
yield 'a'
print(2)
yield 'b'
yield 'c'
g = generator()
ret = g.__next__()
print(ret)
ret = g.__next__()
print(ret)
ret = g.__next__()
print(ret)
#或者使用for循环
for i in g:
print(i)

#娃哈哈%i
def wahaha():
for i in range(2000000):
yield '娃哈哈%s'%i
g = wahaha()
g1 = wahaha()
print(g.__next__())
print(g1.__next__())

g = wahaha()
count = 0
for i in g:
count +=1
print(i)
if count > 50:
break
# print('*******',g.__next__())
for i in g:
count +=1
print(i)
if count > 100:
break

#监听文件例子
def tail(filename):
f = open(filename,encoding='utf-8')
while True:
line = f.readline()
if line.strip():
yield line.strip()

g = tail('file')
for i in g:
if 'python' in i:
print('***',i)

转载于:https://www.cnblogs.com/Murraya/p/10702503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值