[Python-Dev] Is explicit registration of Iterators needed?

Serhiy Storchaka storchaka at gmail.com
Fri Oct 7 10:47:24 EDT 2016


On 07.10.16 17:37, Guido van Rossum wrote:
> On Fri, Oct 7, 2016 at 6:36 AM, Serhiy Storchaka <storchaka at gmail.com> wrote:
>> A number of builtin iterator classes (but not all builtin iterator classes)
>> are registered with the Iterator ABC in Lib/_collections_abc.py.  But
>> isinstance(it, Iterable) check works without explicit registration, because
>> Iterable has __subclasshook__ that checks iterator methods.  Is there a need
>> in explicit registrations?  Or their can be safely removed?
>
> The preferred apprach is actually inheritance; registration comes
> next; the __subclasshook__ is a final compromise to the tradition of
> duck typing. I think the registrations should stay.

Should we register missed builtin iterators? For example longrange_iterator.



More information about the Python-Dev mailing list