On Fri, Sep 11, 2015 at 1:48 AM, Raymond Hettinger
<raymond.hettin...@gmail.com> wrote:
>
>> On Sep 10, 2015, at 3:23 AM, Maciej Fijalkowski <fij...@gmail.com> wrote:
>>
>> I would like to know what are the semantics if you subclass something
>> from itertools (e.g. islice).
>>
>> Right now it's allowed and people do it, which is why the
>> documentation is incorrect. It states "equivalent to: a function-or a
>> generator", but you can't subclass whatever it is equivalent to, which
>> is why in PyPy we're unable to make it work in pure python.
>>
>> I would like some clarification on that.
>
> The docs should say "roughly equivalent to" not "exactly equivalent to".
> The intended purpose of the examples in the itertools docs is to use
> pure python code to help people better understand each tool.  It is not
> is intended to dictate that tool x is a generator or is a function.
>
> The intended semantics are that the itertools are classes (not functions
> and not generators).  They are intended to be sub-classable (that is
> why they have Py_TPFLAGS_BASETYPE defined).

Ok, so what's completely missing from the documentation is what *are*
the semantics of subclasses of those classes? Can you override any
magic methods? Can you override next (which is or isn't a magic method
depending how you look)? Etc.

The documentation on this is completely missing and it's left guessing
with "whatever cpython happens to be doing".
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to