Newbie - circular import problem

Diez B. Roggisch nospam-deets at web.de
Tue Feb 24 05:51:28 EST 2004


> --a.py--
> import b
> class ClassA:
>     def __init__(self):
>         print 'ClassA'
> 
> --b.py--
> import a
> class ClassB(ClassA):
>     def __init__(self):
>         print 'ClassB'
>  
> If I try to access ClassB (for example, by firing up python and importing
> b), I get the error:
> 
>   File "b.py", line 2, in ?
>     class ClassB(ClassA):
>     NameError: name 'ClassA' is not defined
> 
> Could someone explain what is going wrong here? I'm still getting up to
> speed with python, but, to me, this looks like the import of b is occuring
> before ClassA has been defined. Is that right? How can I correct this,
> apart from amalgamating the two into a single file?

Put whatever a needs from b (its obviously not ClassB) into a module c, and
import it from both.

-- 
Regards,

Diez B. Roggisch



More information about the Python-list mailing list