• 迭代器


      

    from collections import Iterable #检测一个对象是否可迭代

    #   ‘——iter——’这个方法导致了一个数据类型的可迭代

          iter

          #只要包含了“双下iter”方法的数据类型就是可迭代的  —   可迭代协议

          #数据类型和pyth解释器订下来的协议

          #  print([1,2,3].__iter__())  #   list_iterator

         #  迭代器就是实现了能从其中一个一个的取出值来

         迭代器中有  __next__  和  __iter__  方法   ——  迭代器协议

         学过的所有可以被for循环的  基本数据类型 都是可迭代的  而不是迭代器

    # 可迭代对象

           可迭代协议:含有 __iter__方法的对象

           from collections  import iterable

           print(isinstance(要检测的对象,Iterable))

    #  迭代器

      # 迭代器协议:含有 __iter__ 和  __next__ 方法的对象

         from collections import Iyerator

         print(isinstance(要检测的对象,Iterator))

    # 迭代器和可迭代对象之间的关系

          迭代器包含了可迭代对象

          迭代器  =   可迭代对象.__iter__() 

    #   为什么要有迭代器,迭代器存在的本质是什么:

           1.能够对python中的基本数据类型进行统一的遍历,不需要关心每一个值是什么

           2.它可以节省内存 — 惰性运算

        迭代器   天生的,比如文件句柄   后天的,可迭代对象.__iter__()

  • 相关阅读:
    html文本超出自动换行、显示省略号
    angular第三天
    angular第二天
    angular第一天
    jQuery基础:keydown( ) 与 keypress( ) 区别
    jQuery基础:mouseeter( ) 与 mouseover( ) 区别
    jQuery基础:remove()与 detach()区别
    jQuery基础:获取元素内容
    (一)数组或对象中最会一个属性是否该加逗号的测试
    jQuery基础:prop()与attr()的区别
  • 原文地址:https://www.cnblogs.com/ez2z/p/7473862.html
Copyright © 2020-2023  润新知