""" 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时, 关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态, 并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator)。生成器是一类特殊的迭代器。 """ def crate_num(all_num): a, b = 0, 1 current_num = 0 while current_num < all_num: # print(a) yield a # 如果一个函数中有yield语句, 那么这个就不再是函数, 而是一个生成器 a, b = b, a + b current_num += 1 # 如果在调用函数的时候, 发现这个给函数中有yield, 不是调用函数, 而是创建一个生成器对象 obj = crate_num(10) for num in obj: print(num)
python yield创建生成器
最新推荐文章于 2021-09-11 17:10:47 发布