> What about doing something similar to how import was changed?
>
> .a = 5 # this scope (self might be too magical
> ..a = 3 # up one scope
> ...a # up three
>
> Of course, this looks ... perhaps a bit strange. Also, counting is a
> bother.
I'd rather see a simpler rule: = never defines a variable in a surrounding
scope. If you want to affect the binding of such a variable, you have to
define it explicitly in the scope in which you want it.
Example:
x = 42
def f():
x = 123 # rebinds x as defined above
y = 123 # defines local variable
f()
print x # prints 123
print y # error -- y not defined
Yes, I know that rule is too simplistic. But I think I'd still prefer it to
the way things are now.
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com