Python currently accepts global statements at the top level:
global foo


Beside being a meaningless operation, this might lead unexperienced
user to make mistakes like:
foo = 5
global foo # make foo global
def func():
...   print foo # access the global foo
...
func()
5
# it works!

"global foo" should raise a SyntaxError, similarly to what already
happens with "return":
return foo
 File "<stdin>", line 1
SyntaxError: 'return' outside function


I opened an issue on the tracker (http://bugs.python.org/issue7329)
and Benjamin suggested to discuss this here.
The test he mentioned is in test_global.py:

   def test4(self):
       prog_text_4 = """\
global x
x = 2
"""
       # this should work
       compile(prog_text_4, "<test string>", "exec")

It just says that "it should work" but it doesn't say /why/.

Any thoughts?

_______________________________________________
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