Python 生成器

def create_num(all_num):
    print("------1------")
    a, b = 0, 1
    current_num = 0
    while current_num < all_num:
        print("------2------")
        # 如果一个函数中有yield语句,那么这个就不在是函数,而是一个生成器的模板
        yield a
        print("------3------")
        a, b = b, a + b
        current_num += 1
        print("------4------")


# 如果在调用create_num的时候,发现这个函数中有yield那么此时,不是调用函数,而是创建一个生成器对象
obj = create_num(10)
while True:
    try:
        ret = next(obj)
        print(ret)
    except Exception as ret:
        # print(ret.value)
        break

 

posted @ 2019-08-13 22:17  李道臣  阅读(154)  评论(0编辑  收藏  举报