mgi*_*son 14
这xrange是一个序列对象的原因是因为它支持序列方法接口.例如,您可以将其编入索引(这是使用vanilla生成器无法做到的事情):
print xrange(30)[5] # No Error
Run Code Online (Sandbox Code Playgroud)
换一种说法,
.next或者.__next__是最重要的)1. __iter__方法,它返回"生成器"(具有明确定义.next或.__next__3方法的东西)__iter__它返回对象本身并具有良好定义next和/或__next__方法).可以在文档词汇表中找到更正式的定义
1台发电机也支持__iter__并简单地自行返回.所以,所有的生成器都是迭代器(和迭代器!),但并非所有的迭代器(迭代器)都是生成器.如注释中所指出的,
2__len__ + __getitem__足以创建一个iterable.
3__next__是python3.x的方法名称