根据您要迭代的内容,有多个迭代器类:
>>> import re
>>> re.finditer("\d+","1 ha 2 bah").__class__
两个问题:
>他们之间有什么有意义的区别吗?
>为什么第一个称为可调用迭代器?你绝对不能称之为.
最佳答案
作为迭代器意味着实现迭代器协议,而不是特定类的成员 – 迭代器就像迭代器一样.您可以编写自己的
自定义类作为迭代器,它们不会是您列出的任何类.
从“作为迭代器”的角度来看,它们之间没有区别.它们都是迭代器,这意味着你可以迭代它们.它们之间当然可能存在其他差异 – 它们可能还有其他方法或行为定义 – 但作为迭代器的迭代器它们是相同的.
您可以将迭代器视为某种“知道如何”迭代特定数据结构的doodad.不同类型的数据结构可能有自己的自定义类来迭代它们;这些迭代器可能会做不同的事情,但都共享相同的公共接口(迭代器协议).
原文链接:https://www.f2er.com/python/439633.html