
On 22 July 2016 at 10:29, Guido van Rossum <guido@python.org> wrote:
On Thu, Jul 21, 2016 at 5:05 PM, Thomas Nyberg <tomuxiong@gmail.com> wrote:
On 07/21/2016 07:58 PM, Guido van Rossum wrote:
But there's already Container which means "supports __contains__".
Collection might cause confusing with the module name collections.
Otherwise either would be a good candidate...
As far as the original "Sized Iterable Container" question goes, would FiniteContainer work? - it's countable/iterable - it has a quantifiable size - you can do membership tests on it Countable & quantifiable = finite, membership testing = container, hence FiniteContainer
Coming out of lurking...
StaticIterable? ConstIterable? Something to indicate that if you just iterate over it you keep getting the same thing?
Neither "static" nor "const" convey the right meaning.
Personally I think Reiterable is about as clear as it ever will be...
Yeah, I think that's my conclusion as well.
With the semantics being "iter(x) is not x"? That seems reasonable to me, as I spent some time think about whether or not this is a distinct idea from the "Sized Iterable Container" question, and it's pretty easy to demonstrate that it is: >>> class ReiterableCounter: ... def __iter__(self): ... x = 0 ... while True: ... yield x ... x += 1 ... >>> ctr = ReiterableCounter() >>> for x in ctr: ... print(x) ... if x > 1: break ... 0 1 2 >>> for x in ctr: ... print(x) ... if x > 1: break ... 0 1 2 (The same example works by returning any non-terminating iterator from __iter__) Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia