码迷,mamicode.com
首页 > 其他好文 > 详细

迭代器,可迭代对象,生成器区别

时间:2018-11-01 22:34:08      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:字符串   for   pytho   ext   可迭代对象   ons   __iter__   import   显示   

  • 迭代对象 :实现__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)

迭代器,可迭代对象,生成器区别

标签:字符串   for   pytho   ext   可迭代对象   ons   __iter__   import   显示   

原文地址:https://www.cnblogs.com/geoffreyone/p/9892481.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!