It wasn't clear to me what you are proposing:

iter(an_int)

to return.

There have been multiple proposal in the past for it to return the same
thing as:

iter(range(an_int)),

so that one could write:

for i in 23:
   ...

more compactly than:

for i in range(23):
   ...

but that proposal has been rejected many times.

On the other hand, maybe you are proposing that:

iter(5)

Should return the same thing as:

iter((5,))

which is really odd. It makes some small amount of sense if you assume that
all sequences are "flat". But even then, the distinction between a single
item and a sequence with one item in it a critical distinction that should
not be masked.

Also - if you do this for integers, do you do it for all numbers? what
about any other single object? (and THAT would get really strange with
strings!)

BTW: I'm using `iter` here because that is the iteration protocol --
anything we do needs to conform to that.

- CHB




On Wed, Apr 14, 2021 at 1:35 AM Hans Ginzel <h...@matfyz.cz> wrote:

> On Tue, Apr 13, 2021 at 05:39:42PM -0000, Dennis Sweeney wrote:
> >Whenever you extend the definition of an operation (`__iter__` in this
> case) to more existing objects, you lose a little bit of the ability to
> catch errors early. Consider the function:
> >
> >    def traverse(something):
> >        for x in something:
> >            # do stuff
> >            ...
> >
> >If you accidentally call `traverse(42)`, then right now, you catch it
> immediately with a TypeError on the `for x in something:` line. Under your
> proposal, you might just get a strange answer and not realize anything is
> wrong.
>
> Error? Perhaps feature! You will get the desired behaviour and don't need
> to handle corner case like this.
>
> from collections.abc import Iterable
> def traverse(s):
>    for x in s if isinstance(s, Iterable) else (s,):
>      print(f"{x=}")
>
> traverse(5)
> traverse(range(3))
>
> H.
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/UIJRGCU4LUEZCNO4OUESKFVHPCSKHKKH/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
Christopher Barker, PhD (Chris)

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/NB7A6ULU4RFTLKZNLDXKDKIILY7ZZ33S/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to