[Python-3000] isinstance(., Iterable) vs lookup('__iter__') != None Re: *View in abc.py not inheriting Iterable Re: PEP 3119 - Introducing Abstract Base Classes
pedronis at openendsystems.com
Sat Apr 28 21:28:59 CEST 2007
Guido van Rossum wrote:
> On 4/28/07, Samuele Pedroni <pedronis at openendsystems.com> wrote:
>> Shouldn't the various *View in abc.py be Iterables (inherit from
>> Iterable) ?
> Oops, it looks like this is a mess. There are two classes
> _MappingView. Ignore them for the sake of the PEP. I'll clean them up
> later. We probably need fewer mapping classes, nor more...
It seems that something that defines __iter__ should also subclass Iterable,
in this kind of situation where the special method is unique enough it seems
quite repetitive to have to do both. It seems easy to forget to subclass.
Shouldn't now that there are isinstance hooks Iterable be defined again
of just checking for the presence of '__iter__' lookup-wise? I suppose
there are some other similar
cases, of course in other situations the ABC carry an intention that
goes beyond the presence
More information about the Python-3000