day13-生成器
程序员文章站
2022-04-29 17:41:00
只要含有yield关键字的函数都是生成器函数。yield不能和return共用且需要写在函数内。 生成器函数 : 执行之后会得到一个生成器作为返回值。 yield没有结束一个函数,可以连续打印。 生成器可以生成n个你想要的字符串。 一个利用监听器实现的监听文件输入操作。 ......
def generator(): print(1) yield 'a' rcp = generator() print(rcp.__next__())
只要含有yield关键字的函数都是生成器函数。yield不能和return共用且需要写在函数内。
生成器函数 : 执行之后会得到一个生成器作为返回值。
def generator(): print(1) yield 'a' print(2) yield 'b' rcp = generator() put = rcp.__next__() print(put) put = rcp.__next__() print(put)
yield没有结束一个函数,可以连续打印。
# 产生200个字符串def putstr(): for i in range(200): yield '我最帅%d'%iput = putstr()for i in put: print(i) # 可不可以在两百个字符串中只取五十个,然后再紧接着上一次结束的地方再取五十个呢?def putstr(): for i in range(200): yield '你最帅%s'%iput = putstr()count = 0for i in put: print(i) count += 1 if count >= 50: breakprint('----------------------')for i in put: print(i) count += 1 if count >= 100: break
生成器可以生成n个你想要的字符串。
# 监听文件输入 def func(filename): f = open(filename,encoding='utf-8') while true: line = f.readline() if line.strip(): yield line g = func('file') for i in g: print(i)
一个利用监听器实现的监听文件输入操作。
上一篇: Windows下安装PHP单元测试环境PHPUnit图文教程
下一篇: 【php设计模式】桥接模式