Op 27/02/2023 om 9:56 schreef inhahe:
On Mon, Feb 27, 2023 at 3:52 AM Roel Schroeven <r...@roelschroeven.net>
wrote:
> Op 26/02/2023 om 6:53 schreef Hen Hanna:
> > > There are some similarities between Python and Lisp-family
> > > languages, but really Python is its own thing.
> >
> >
> > Scope (and extent ?) of variables is one reminder that Python is
> not Lisp
> >
> > for i in range(5): print( i )
> > .........
> > print( i )
> >
> > ideally, after the FOR loop is done, the (local) var i should also
> disappear.
> > (this almost caused a bug for me)
> I wouldn't say "i *should* also disappear". There is no big book of
> programming language design with rules like that that all languages have
> to follow. Different languages have different behavior. In some
> languages, for/if/while statements introduce a new scope, in other
> languages they don't. In Python, they don't. I won't say one is better
> than the other; they're just different.
>
> --
>
>
I'm not sure, but I think I remember this was actually a bug in the
interpreter, and presumably they didn't fix it because they didn't want to
break backward compatibility?
I'm guessing you're thinking about variables leaking out of list
comprehensions. I seem to remember (but I could be wrong) it was a
design mistake rather than a bug in the code, but in any case it's been
fixed now (in the 2 to 3 transition, I think).
For loops (and while loops, and if statements) not introducing a new
scope is a deliberate decision and is not subject to change.
--
"Ever since I learned about confirmation bias, I've been seeing
it everywhere."
-- Jon Ronson
--
https://mail.python.org/mailman/listinfo/python-list