[Tutor] global statement?

Rob Andrews rob@jam.rr.com
Wed, 15 Aug 2001 10:27:22 -0500

dman wrote:
> On Wed, Aug 15, 2001 at 09:23:17AM -0500, Rob Andrews wrote:
> | *Learning Python* (pp. 99-105) points out that declaring globals from
> | within functions is possible, and shows how. I'm trying to think of
> | *why* one might want to declare or modify a global from within a
> | function.
> |
> | A friend who knows quite a bit more than I do about the subject said
> | "That's the first thing about python I've seen that really makes me go
> | "yecchhh.".  Global variables have to be declared outside the scope of
> | any functions or methods in almost every langauge except Perl."
> The only reason the 'global' statement exists is to allow _assignment_
> to a global name.  If the global statement is left out then the
> assignment will create a new _local_ binding that overshadows the
> global one.  Reading a global variable requires no special syntax.
> Usually global variables will be created in their global context (ie
> at module level), but sometimes may need to be changed.  I think that
> configuration options are a good example of this -- some module should
> have all the global configuration options and initially they will have
> a default value.  Then a function (or more) may parse some config file
> and modify those global variable to contain their new values.
> Admittedly 'global' has limited usefulness in a well-designed program
> but it does have its place.
> HTH,
> -D

I can buy that, and it's about what I figured. But since I haven't had
to use a global variable in any sophisticated way since Pascal (which
for me was a number of years ago), I was uncertain.

As Always, Thanks,
A {} is a terrible thing to waste.
Useless Python!