General question about Python design goals

Mike Meyer mwm at mired.org
Thu Dec 1 15:17:26 EST 2005


"Fredrik Lundh" <fredrik at pythonware.com> writes:
> Mike Meyer wrote:
>> So why the $*@& (please excuse my Perl) does "for x in 1, 2, 3" work?
> because the syntax says so:
>     http://docs.python.org/ref/for.html

In other words, "Because that's the way we do things."

>> Seriously. Why doesn't this have to be phrased as "for x in list((1,
>> 2, 3))", just like you have to write list((1, 2, 3)).count(1), etc.?
> because anything that supports [] can be iterated over.

That's false. Anything that has __getitem__ supports []. To be
iterated over, it has to have __iter__, or an __getitem__ that works
on integers properly. Writing a class that meets the first without
meeting the second is easy. Dicts used to qualify, and tuples could be
iterated over at that time.

Not really very satisfactory reasons.

    <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list