zoukankan      html  css  js  c++  java
  • python之yield的一些应用

    生成器

    • yield是用于生成器。生成器通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器。它不同于函数的使用方法是:函数使用return来进行返回值,每调用一次,返回一个新加工好的数据返回给你;yield不同,它会在调用生成器的时候,把数据生成object,然后当需要用的时候,要用next()方法来取,同时不可逆。
    • 如果一个函数中有return返回值,而且在return下面还有代码:那么return下面的代码将不会被执行,而yield却不同,它返回值后还可以继续执行下面的代码
    def mygen(n):
        now = 0
        while now < n:
            yield now
            now += 1
    
    if __name__ == '__main__':
        gen = mygen(4)
    
        # 通过交替执行,来说明这两种方法是等价的。
        print(gen.send(None))
        print(next(gen))
        print(gen.send(None))
        print(next(gen))

    携程

    yield from    后面需要加的是可迭代对象,它可以是普通的可迭代对象,也可以是迭代器,甚至是生成器。如果是生成器,就实现了生成的嵌套。它的功能很强大,主要是可以让我们避免让我们自己处理各种料想不到的异常

  • 相关阅读:
    Java读写锁(ReentrantReadWriteLock)学习
    水平拆分和垂直拆分理解(未完)
    MySQL 主从复制
    sharding-JDBC 实现读写分离
    Linux查看程序端口占用情况
    sharding-jdbc 实现分表
    MySQL explain
    MySQL的七种join
    MySQL建立高性能索引策略
    Nginx企业级优化
  • 原文地址:https://www.cnblogs.com/houyu/p/10771431.html
Copyright © 2011-2022 走看看