zoukankan      html  css  js  c++  java
  • 第九节 生成器

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

    '''
    生成器是一种特殊的迭代器
    '''
    # 则在调用调用create_num时,不再是调用函数,而是在创建一个生成器模板
    a = create_num(10) #不会像函数一样运行,而是生成数据的一个类,与list等比较,list是实在的数据,而create_num()是生成数据的对象
    print(create_num(10))
    # for x in a: #开始循环第一个,代码执行到yield语言暂停,将a取出,然后再次回到暂停的地方继续往下执行,不是create_num整个执行结束将保存的a值一次性当作一个迭代器
    # print(x)

    b = next(a)
    print(b)
    c = next(a)
    print(c) # 取数原理跟用for循环一样
  • 相关阅读:
    阅读
    做人做事、原则
    20150913HTML5心得
    动画-七夕言情
    20150818 句子
    网站链接备份
    javascript设计模式2
    javascript设计模式1
    sunlime操作
    node系列4
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12575506.html
Copyright © 2011-2022 走看看