[Tutor] global statement?

alan.gauld@bt.com alan.gauld@bt.com
Wed, 15 Aug 2001 14:29:20 +0100

> > Could anyone please tell me WHY function B can't take 
> > globalized dictionary 'a' as a default value?
> > How can I make it work?

>>> def A():
...   global a
...   a = {}
...   # etc/...

> You didn't run A(), so a variable doesn't exist yet. 
> If you run A(), you can then define B like this..

Now that's interesting. I didn't realize global would have 
that effect, I expected a name error on the assignment.
Instead it simply creates a new name in the global namespace.

I still don't like it as a matter of style but I'm interested 
that it does work and in fact creates new variables in the 
imported modules namespace if placed in a module...

Now, is that better than doing

import foo
foo.a = 56

??? I'm not sure.
I'm off to ponder.

Alan G

> -- 
> Cymbaline: intelligent learning mp3 player - python, linux, console.
> get it at: cy.silmarill.org