• 迭代器


    #int
    #str
    #tuple
    #list
    #dict
    #bool
    #set
    # print(dir(int))#告诉我所拥有的方法
    # print([1].__add__([2]))
    # print(dir(""))
    # print(dir(()))
    # print(dir([]))
    # print(dir(bool))
    # print(dir(range(10)))#只要可以for循环就可以迭代
    # print(dir([].__iter__()))#一个列表执行了__iter__返回值就是一个迭代器
    # print(set(dir([].__iter__()))-set(dir([])))
    # # print([1,2,3].__iter__().__length_hint__())#元素个数
    # list=[1,2,3]
    # Iter=list.__iter__()
    # print(Iter.__iter__().__next__())#迭代器--》通过__next__在迭代器中一个一个取值
    # print(Iter.__iter__().__next__())#只要是含有—__iter__方法的都是可迭代的
    # #只要含有__iter__就是可迭代的-------可迭代协议
    # #可迭代协议:只要含有__next__和_iter__方法的就是迭代器
    # print("__iter__"in dir([]).__iter__())
    # # print("__next__"in dir([].__iter__())
    # from collections import Iterator
    # from collections import Iterable
    # print(isinstance([],Iterator))
    # print(isinstance([],Iterable))
    # #如果是迭代器一定可迭代
    #可迭代的不一定是迭代器
    #可迭代的__iter__方法就可以得到一个迭代器
    #for驯化怒就是在用迭代器
    #只有是可迭代对象的时候才能使用for循环
    # #当我们遇到一个不确定他能不能使用for循环,我们就可以判断他有没有迭代器
    # L=[]
    # for i in L:
    # pass
    # #Itertor=l.__iter__()
    #Itertor.__next__()
    #可以一个一个取值把每个值都取到
    #节省内存空间
    #迭代器不会在内存中占用一大块内存,而是需要一个给一个,每次next给一个
    l=[1,2,3,4]
    Iterator=l.__iter__()
    while 1:
    print(Iterator.__next__())
    
    
  • 相关阅读:
    MySQL插入数据慢解决办法
    java的 System.currentTimeMillis() 与时区
    单元测试断言系统 类似于 生活中如何说话
    IDEA、Eclipse 默认常用快捷键对比总结,visual studio快捷键总结
    使用过的正则匹配的例子
    filters的this问题
    vuex的使用
    offset/scroll/clien系列知识点
    promise对象的理解
    语义化标签的理解
  • 原文地址:https://www.cnblogs.com/648071634com/p/11656375.html
Copyright © 2020-2023  润新知