Namespace Problem with global declaration in module

Gordon McMillan gmcm at hypernet.com
Wed Apr 26 15:48:25 EDT 2000


spex66 at my-deja.com wrote:

> Hi,
> it seemed very simple but don't worked like expected:
> 
> #FILE: test.py
> dd = None #INIT a shadow instance for automated access
> class zz:
>     #ONLY one class will be instantiated
>     def __init__(self):
>         self.name = 'hallo'
>         global dd
>         dd = self
> #END OF FILE
> 
> >>> from test import *

There's your problem. "from test import *" copies names from 
test to your namespace. Now dd is another name for None. 
yy() affects the dd in test's namespace, not yours.

> >>> yy = zz()
> >>> dd.name
>     ...
>     AttributeError
>     ...


- Gordon




More information about the Python-list mailing list