生成器函数

来源:互联网 发布:网络怎么走电线 编辑:程序博客网 时间:2024/05/20 17:59

Pyhon优雅的魔力使生成器函数很特殊,它们像定格相机一样工作。

当一个标准函数遇到return语句时,它会返回值,然后函数会丢弃内部的所有数据。当下次调用时,一切从头开始。

yield语句会做不同的事情。它像return一样返回一个值,但是它不会使函数丢弃数据,相反所有数据都被保存起来。

 #/usr/bin/python3  2 #coding:utf-8  3   4 #生成器函数 yield  5 def odds(start = 1):  6     '''return all odd numbers from start updates'''  7     if int(start) % 2 == 0:    8         start = int(start) + 1  9     while True: 10         yield start 11         start += 2 12  13 if __name__ == "__main__": 14     lis = [m*m for m in range(1,13) if not m*m %2] #生成器表达式 15     print(lis) 16  17     for n in odds(): 18         if n > 7: 19             break 20         else: 21             print(n) 22 

0 0
原创粉丝点击