On 7/1/06, Josiah Carlson <[EMAIL PROTECTED]> wrote:
> There's one very simple way we could do this in Py3k
> without requiring any new syntax or keywords: just
> redefine the meaning of "global" to mean "not local".

I would probably be a solid -0 on such a proposal; I still don't think
it's really necessary, but I've never used (or really seen) global more
than one level deep, so would guess its impact would be low.

This has been discussed at length in the following thread that I started in February and at least one time before that.

http://mail.python.org/pipermail/python-dev/2006-February/061568.html

I think using the "global" keyword is probably the lowest impact form and has the least amount of backwards incompatibility.  Below is the part of the last thread that I talked about changing the meaning of "global."

http://mail.python.org/pipermail/python-dev/2006-February/061852.html

Having the "global" keyword semantics changed to be "lexically global"

would break in the cases that "global" is used on a name within a
nested scope that has an enclosing scope with the same name. I would
suppose that actual instances in real code of this would be rare.

Consider:
>>> x = 1
>>> def f() :
... x = 2
... def inner() :
... global x
... print x
... inner()
...
>>> f()
1

Under the proposed rules:
>>> f()
2

PEP 227 also had backwards incompatibilities that were similar and I
suggest handling them the same way by issuing a warning in these cases
when the new semantics are not being used ( i.e. no "from __future__").

Most people probably think that this is a low impact "wart" on the Python language that not really worth fixing as there are workarounds (i.e. mutable objects) or other ways to express ( i.e. use classes) such things, but it does trip people up from time to time as warts typically do--I guess that's why this gets brought up now and again.

Best regards,
Almann

--
Almann T. Goo
[EMAIL PROTECTED]
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to