software design question
Josiah Carlson
jcarlson at nospam.uci.edu
Sat Feb 7 14:27:36 EST 2004
> I have the following inter-class relationships:
>
> __main__: (in file LMCMain.py)
> imports module FileIO
> defines class LMCMain
> instanciats main = LMCMain(...)
>
> FileIO.py:
> defines class FileIO
> class FileIO needs to access "main" from LMCMain.py
I don't know what one /should/ call it, but what you have is what I
would call a circular import. You are attempting to have two modules
use the internals of each other. That is poor design.
You can use a kludge to get past poor design by using the following:
main = LMCMain()
import sys
sys.modules['FileIO'].main = main
In the future, better design is suggested.
- Josiah
More information about the Python-list
mailing list