zoukankan      html  css  js  c++  java
  • Python练习-一个简单的生成器

    今天我们学习了生成器,怎么理解生成器呢,其实就是使用函数的方式自己建立一个迭代器

     1 # 编辑者:闫龙
     2 #做一个简单的生成器
     3 def EasyGene(*args): #建立一个生成器方法并传递多个参数
     4     for i in args:
     5         yield i#将获取的多个参数值,全部yield返回
     6 g = EasyGene("a","b",3) #将参数传递给生成器方法EasyGene,并将yield返回结果赋值给g
     7 while True:
     8     try:
     9         print(next(g))#循环打印next(g)中的结果
    10     except StopIteration:#由于遍历生成器的迭代器,当超出迭代器长度时,会产生一个Stop告警,所以我们要使用try的方式将告警进行处理
    11         break

    事实上生成器也是一个迭代器,这个理论有点难懂:

    # 编辑者:闫龙
    from collections import Iterable,Iterator,Generator
    def a():
        yield 1
        yield 2
    print(isinstance(a(),Iterator)) #判断a()的执行结果是不是一个迭代器,返回结果是True
    print(isinstance(a(),Generator))#判断a()的执行结果是不是一个生成器,返回结果也是True
    print(type(a()))#打印一下a()的执行结果是什么类型,令人差异的是结果为一个生成器:<class 'generator'>
    #神坑已挖好,请大家自行填坑
  • 相关阅读:
    freemarker的${!}
    什么是分布式消息中间件?
    Webservice工作原理及实例
    Nginx的一些基本功能
    dubbo与zookeeper的关系
    为什么推荐Zookeeper作注册中心
    ORACLE和MYSQL的简单区别
    SQL优化|Java面试题
    玩转 lua in Redis
    解决KafKa数据存储与顺序一致性保证
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6696836.html
Copyright © 2011-2022 走看看