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