VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python教程 >
  • python基础教程之python基础(13):函数名的使用、第一类对象、闭包、迭代器(6)

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


Iterator)) #False
  • print(isinstance(l_iter,Iterator)) #True
  • print(isinstance(l_iter,Iterable)) #True
  • 综上,我们可以确定,如果对象中有__iter__函数,那么我们认为这个对象遵守了可迭代协议,就可以获取到相应的迭代器。这⾥的__iter__是帮助我们获取到对象的迭代器,我们使⽤迭代
    器中的__next__()来获取到⼀个迭代器中的元素,那么我们之前讲的for的⼯作原理到底是什么? 继续看代码。
    
    
    1. s = "我爱北京天安⻔"
    2. c = s.__iter__() # 获取迭代器
    3. print(c.__next__()) # 使⽤迭代器进⾏迭代. 获取⼀个元素 我
    4. print(c.__next__()) #
    5. print(c.__next__()) #
    6. print(c.__next__()) #
    7. print(c.__next__()) #
    8. print(c.__next__()) #
    9. print(c.__next__()) #
    10. print(c.__next__()) # StopIteration
    for循环的机制:
    
    
    1. for i in [1,2,3]:
    2.   print(i)
    使⽤while循环+迭代器来模拟for循环(必须要掌握)
    
    
    1. lst = [1,2,3]
    2. lst_iter = lst.__iter__()
    3. while True:
    4.   try:
    5.     i = lst_iter.__next__()
    6.     print(i)
    7.   except StopIteration:
    8.     break
    总结:
    Iterable: 可迭代对象,内部包含__iter__()函数。
    Iterator: 迭代器,内部包含__iter__() 同时包含__next__()。
    迭代器的特点:
    1. 节省内存
    2. 惰性机制
    3. 不能反复, 只能向下执⾏
    我们可以把要迭代的内容当成⼦弹,然后呢,获取到迭代器__iter__(),就把⼦弹都装在弹夹中,然后发射就是__next__()把每⼀个⼦弹(元素)打出来。也就是说,for循环的时候,⼀开始的
    时候是__iter__()来获取迭代器,后⾯每次获取元素都是通过__next__()来完成的,当程序遇到StopIteration将结束循环。

    相关教程
            
    关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号