Nested scopes and class variables
Steven Bethard
steven.bethard at gmail.com
Mon Jan 31 11:21:55 EST 2005
Alex Martelli wrote:
>>>>def f(x):
>
> ... class C:
> ... x = x
> ... return C
> ...
>
[snip]
>
>>>>def f(x):
>
> ... def g():
> ... x = x
> ... return x
> ... return g
> ...
>
[snip]
>
> See the difference? In a function, the 'x = x' compiles into LOAD_FAST,
> STORE_FAST, which only looks at locals and nowhere else. In a
> classbody, it compiles to LOAD_NAME, STORE_NAME, which looks at locals
> AND globals -- but still not at closure cells...
Is there a reason why the class body doesn't look at closure cells?
That is, are there cases where this lookup scheme is preferred to one
that checks locals, closure cells and globals?
Steve
P.S. Question disclaimer:
My questions here are founded in a curiosity about language design, and
are not intended as an attack on Python. =)
More information about the Python-list
mailing list