python--生成器(generator)

#生成器函数
# def generator():
#     print(1)
#     return 'a'
#
# ret = generator()
# print(ret)

#只要含有yield关键字的函数都是生成器函数
# yield不能和return共用且需要写在函数内
# def generator():
#     print(1)
#     yield 'a'
# #生成器函数 : 执行之后会得到一个生成器作为返回值
# ret = generator()
# print(ret)
# print(ret.__next__())

# def generator():
#     print(1)
#     yield 'a'
#     print(2)
#     yield 'b'
#     yield 'c'
# g = generator()
# for i in g:
#     print(i)
# ret = g.__next__()
# print(ret)
# ret = g.__next__()
# print(ret)
# ret = g.__next__()
# print(ret)

#娃哈哈%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/jsit-dj-it/p/11425811.html