BDFL pronouncement on next() vs. __next__() vs. __call__().
Add mailing list pointers. Add discussion on "once-stopped-always-stopped".
This commit is contained in:
parent
811c26b6de
commit
619a17e425
24
pep-0234.txt
24
pep-0234.txt
|
@ -111,7 +111,7 @@ C API Specification
|
||||||
low-level API not using this convention." My (BDFL's) response:
|
low-level API not using this convention." My (BDFL's) response:
|
||||||
there are other important protocols with a user-level name
|
there are other important protocols with a user-level name
|
||||||
(e.g. keys()), and I don't see the importance of this particular
|
(e.g. keys()), and I don't see the importance of this particular
|
||||||
rule.
|
rule. BDFL pronouncement: this topic is closed. next() it is.
|
||||||
|
|
||||||
|
|
||||||
Python API Specification
|
Python API Specification
|
||||||
|
@ -160,12 +160,20 @@ Python API Specification
|
||||||
with an sentinel value) is somewhat ugly. I haven't seen a
|
with an sentinel value) is somewhat ugly. I haven't seen a
|
||||||
better name for the second operation though.
|
better name for the second operation though.
|
||||||
|
|
||||||
|
- There's a bit of undefined behavior for iterators: once a
|
||||||
|
particular iterator object has raised StopIteration, will it
|
||||||
|
also raise StopIteration on all subsequent next() calls? Some
|
||||||
|
say that it would be useful to require this, others say that it
|
||||||
|
is useful to leave this open to individual iterators. Note that
|
||||||
|
this may require an additional state bit for some iterator
|
||||||
|
implementations (e.g. function-wrapping iterators).
|
||||||
|
|
||||||
- It was originally proposed that rather than having a next()
|
- It was originally proposed that rather than having a next()
|
||||||
method, an iterator object should simply be callable. This was
|
method, an iterator object should simply be callable. This was
|
||||||
rejected in favor of an explicit next() method. The reason is
|
rejected in favor of an explicit next() method. The reason is
|
||||||
clarity: if you don't know the code very well, "x = s()" does
|
clarity: if you don't know the code very well, "x = s()" does
|
||||||
not give a hint about what it does; but "x = s.next()" is pretty
|
not give a hint about what it does; but "x = s.next()" is pretty
|
||||||
clear.
|
clear. BDFL pronouncement: this topic is closed. next() it is.
|
||||||
|
|
||||||
|
|
||||||
Dictionary Iterators
|
Dictionary Iterators
|
||||||
|
@ -297,6 +305,18 @@ Rationale
|
||||||
{__getitem__, keys, values, items}.
|
{__getitem__, keys, values, items}.
|
||||||
|
|
||||||
|
|
||||||
|
Mailing Lists
|
||||||
|
|
||||||
|
The iterator protocol has been discussed extensively in a mailing
|
||||||
|
list on SourceForge:
|
||||||
|
|
||||||
|
http://lists.sourceforge.net/lists/listinfo/python-iterators
|
||||||
|
|
||||||
|
Initially, some of the discussion was carried out at Yahoo;
|
||||||
|
archives are still accessible:
|
||||||
|
|
||||||
|
http://groups.yahoo.com/group/python-iter
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
|
|
||||||
This document is in the public domain.
|
This document is in the public domain.
|
||||||
|
|
Loading…
Reference in New Issue