zoukankan      html  css  js  c++  java
  • 迭代器,可迭代对象,生成器区别

    • 迭代对象 :实现__iter__方法,返回迭代器。不需要显示继承Iterable,
    • 迭代器: 实现_iter__方法,__next__方法,不需要显示继承Iterator
    from collections import Iterable,Iterator
    
    def generator():
        for i in range(10):
            yield i
    st = ''
    li = []
    di = {}
    ge = generator()
    

    字符串,字典,列表,集合,生成器,都是可迭代对象

    isinstance(st, Iterable), isinstance(li, Iterable), isinstance(di, Iterable), isinstance(ge, Iterable)
    

    结果为:

    (True, True, True, True)
    

    字符串,字典,列表,集合都不是迭代体,生成器是迭代体

    isinstance(st,Iterator), isinstance(li, Iterator), isinstance(di, Iterator), isinstance(ge, Iterator)
    

    结果为:

    (False, False, False, True)
  • 相关阅读:
    Fluent API
    什么是blazor
    10.事务
    9.用ExecuteSqlCommand执行存储过程
    8.自增主键 插入指定主键的数据
    7.图
    6.实体与上下文的关系
    5.并发
    4.跟踪
    3.级联删除
  • 原文地址:https://www.cnblogs.com/geoffreyone/p/9892481.html
Copyright © 2011-2022 走看看