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

    可迭代的:对象有__iter__方法的都是可迭代对象
     
     
    为什么要用迭代器
    1.迭代器提供一件依赖于索引的取值方式 ,这样就可以遍历那些1没有索引的可迭代对象(字典,集合)
    2.迭代器与列表比较,迭代器更节省内存
     
    缺点:
    1.无法索引迭代器的长度,使用不如列表索引取值灵活
    2. 一次性的,只能住后取值,不能往前
     
    迭代器next 就可以取值

    总结yield的功能:
    1.相当于把__iter__和__next__方法封装到函数内部
    2.与return比,return只能返回一次,而yield能返回多次
    3.函数暂停已经继续运行的状态是通过yield保存的

    #e.send与next(e)的区别
    #1.如果函数内yield是表达式形式,那么必须先next(e)
    #2.二者的共同之处是都可以让函数在上次暂停的位置继续运行,不一样的地方在于
    send在触发下一次代码的执行时,会顺便给yield传一个值

    e=eater('铁骨')
    next(e)
    e.send('包子')
    e.send('豆子')
  • 相关阅读:
    Network File System
    模拟网络抖动及网络延迟
    python with statements
    Centos 7
    Blind Carbon Copy
    git
    python time
    valgrind3.11.0
    tinycore os
    about arp_ignore arp_filter arp_announce rp_filter
  • 原文地址:https://www.cnblogs.com/jack2017/p/7617642.html
Copyright © 2011-2022 走看看