zoukankan      html  css  js  c++  java
  • 生成器

    yield关键字:只能用在函数内
    在函数内但凡包含有yield关键字,再去执行函数,就不会立刻运行函数体代码了
    会得到一个返回值,该返回值成之为生成器对象,生成器本质就是迭代器
    总结yield:
    1. 提供一种自定义迭代器的解决方案
    2. yield可用于返回值
    yield VS return
    相同点:都可以用于返回值
    不同点:yield可以暂停函数,yield可以返回多次值,而return只能返回值一次值函数就立刻终止
    def func():
        print('=====>第一次')
        yield 1
        print('=====>第二次')
        yield 2
        print('=====>第三次')
        yield 3
        print('=====>第四次')
    
    print(func)
    g=func()
    print(g)
    #<function func at 0x00000000027A9510>
    #<generator object func at 0x000000000263A318>生成器

    __next__方法执行与next()方法相同

    实例:

    def range1(start,end,step):
        while start<end:
            yield start
            start+=step
    
    g=range1(1,100,2)
    for item in g:
        print(item)



  • 相关阅读:
    奔溃瞬间1
    面试知识点blog汇总
    贪心
    树 和 图
    DFS 和 BFS
    STL
    哈希表
    手写堆
    并查集
    二项式反演学习笔记
  • 原文地址:https://www.cnblogs.com/msj513/p/9719909.html
Copyright © 2011-2022 走看看