在函数中使用yield时,函数并不会返回数据,而是返回一个生成器对象(generator object),只有当循环遍历时,才会实际运行取得实际的值。
示例一是我看到一本书上的例子,示例二是我将它简化后的例子,功能上没有任何区别。
#示例一: def fileReadLines(): seek = 0 while True: with open(‘/home/python/passwd‘, ‘r‘) as f: f.seek(seek) data = f.readline() if data: seek = f.tell() yield data else: return for item in fileReadLines(): print(item) #示例二: def fileReadLine(): with open(‘/home/python/passwd‘, ‘r‘) as f: for line in f: yield line for item in fileReadLine(): print(item)
本文出自 “戴柏阳的博客” 博客,请务必保留此出处http://daibaiyang119.blog.51cto.com/3145591/1947290
原文地址:http://daibaiyang119.blog.51cto.com/3145591/1947290