[Python-Dev] Re: closure semantics

Terry Reedy tjreedy at udel.edu
Tue Oct 21 23:22:09 EDT 2003

"Guido van Rossum" <guido at python.org> wrote in message
news:200310212340.h9LNeYq25691 at 12-236-54-216.client.attbi.com...
> Eek.  Global statement inside flow control should be deprecated, not
> abused to show that global is evil. :-)

Is there any good reason to ever use globals anywhere other than as
the first statement (after doc string) of a function?  If not, could
its usage be so restricted (like __future__ import)?

> > Plus. EVERY newbie makes the mistake of taking "global" to mean
> > "for ALL modules" rather than "for THIS module",

Part of my brain still thinks that, and another part has to say,
'no, just modular or mod_vars()'.

> Only if they've been exposed to languages that have such globals.

Like Python with __builtins__?  which I think of as the true globals.
Do C or Fortran count as such a source of 'infection'?

> > uselessly using global in toplevel,
> Which the parser should reject.

Good.  The current nonrejection sometimes leads beginners astray
because they think it must be doing something.

While I use global/s() just fine, I still don't like the names.  I
decided awhile ago that they must predate import, when the current
module scoop would have been 'global'.

>[from another post] But I appreciate the argument; 'global' comes
from ABC's >SHARE, but ABC doesn't have modules.

Aha!  Now I can use this explanation as fact instead of speculation.

Terry J. Reedy

More information about the Python-Dev mailing list