标签:计数 filename iter %s odi return lin rip ***
即自己写的函数
只要包括__next__()函数和_iter__()的就是生成器
def genetator(): print(1) return ‘a‘ ret = genetator() print(ret) 结果: 1 a
只要含有yeild关键字的函数都是生成器函数,且与return不能共用,且需要写在函数内部
def genetator(): print(1) yield ‘a‘ # 生成器函数:执行之后会得到一个生成作为返回值 ret = genetator() print(ret)#结果:<generator object genetator at 0x0225DCC0> print(ret.__next__()) # 结果: # 1 # a ret.__iter__()
def wahaha(): for i in range(20): yield ‘娃哈哈%s‘%i g=wahaha() #只拿前五个,用count计数 count = 0 for k in g: count += 1 print(k) if count > 5: break #随时可以再拿下一个值 print(‘ooooo‘,g.__next__())
每生成一个生成器,都互不相关,各个执行
# 监听文件的输入
def tail(filename): f = open(filename,encoding=‘utf-8‘) while True: line = f.readline() if line.strip(): print(‘***‘,line.strip()) tail(‘info‘)
#监听文件的输入,并对内容进行过滤
def tail(filename): f = open(filename,encoding=‘utf-8‘) while True: line = f.readline() if line.strip(): yield line.strip() g = tail(‘info‘) for i in g: if ‘python‘ in i: print(‘******‘,i,‘~~~~‘) if ‘www‘ in i: print(‘******‘,i,‘!!!!‘)
标签:计数 filename iter %s odi return lin rip ***
原文地址:https://www.cnblogs.com/Cheryol/p/9742552.html