[Python-ideas] Membership of infinite iterators
Michel Desmoulin
desmoulinmichel at gmail.com
Tue Oct 17 01:52:02 EDT 2017
Given that:
- it doesn't break anything;
- the behavior makes sense;
- it can avoid the machine freezing when one is not careful;
It can be a good idea.
Those generators could have iterators that are not themselves and have a
__contains__ method behaving accordingly.
I only did the mistake of using "in" on those once, but it did happen. I
can imagine everybody do the same at least once. It's not a huge help,
but the joy of using python is a collection of small things after all.
Le 17/10/2017 à 05:27, אלעזר a écrit :
>
>
> בתאריך יום ג׳, 17 באוק׳ 2017, 00:13, מאת Terry Reedy <tjreedy at udel.edu
> <mailto:tjreedy at udel.edu>>:
>
> On 10/15/2017 9:12 PM, Jason Campbell wrote:
> ...
> > itertools.cycle could use membership from the underlying iterable
>
> If the underlying iterable is an iterator, this does not work. You
> could define a Cycle class that requires that the input have
> .__contain__.
>
> > itertools.repeat is even easier, just compare to the repeatable
> element
>
> Again, create a Repeat(ob) class whose .__iter__ returns repeat(ob) and
> that has .__contains__(x) returning 'x == ob'.
>
> > Does anyone else think this would be useful?
>
> itertools is not going to switch from iterators to non-iterator
> iterables.
>
>
> It doesn't have to switch, and does not have to _require_ the input to
> define __contains__ method for the proposal to be meaningful. It can
> work with the same kind of iterables as its inputs, delegating whenever
> possible. I'm sure there are good reasons not to do it, but that's not
> an either/or decision.
>
> Elazar
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
More information about the Python-ideas
mailing list