On Jul 14, 3:55 am, Matthew Wilson <[EMAIL PROTECTED]> wrote: > I started off with a module that defined a class Vehicle, and then > subclasses Car and Motorcycle. > > In the Car class, for some bizarre reason, I instantiated a Motorcycle. > Please pretend that this can't be avoided for now. > > Meanwhile, my Motorcycle class instantiated a Car as well. > > Then I moved the Car and Motorcycle classes into separate files. Each > imported the Vehicle module. > > Then I discovered that my Car module failed because the global > Motorcycle wasn't defined. The same problem happened in my Motorcycle > module. Car and Motorcycle can't both import each other.
And they should not import each other. > > In the beginning, when all three (Vehicle, Car, and Motorcycle) were > defined in the same file, everything worked fine. You seem to have a strange notion of "worked fine". > > I don't know how to split them out in separate files now though and I > really wish I could because the single file is enormous. What is making a file with 3 classes "enormous"?? What is "enormous"? > > Any ideas? *WRONG WAY* *GO BACK* Your structure is not only bizarre, it is also (sticking with only 1 letter of the alphabet) a Byzantine, baroque, and broken concept. Asking us to "pretend that this can't be avoided for now" is asking us to aid and abet you in creating a meaningless and unmaintainable monster. Consider adding Truck and Bus subclasses. Will each subclass instantiate the other 3??? You should be able to add or remove a subclass without having to modify all other subclasses. The only rational solution is not to have the subclasses refer to each other. Tell us *why* you think you need to have Car refer to Motorcycle and vice versa, and we should be able to help you find a way out. Cheers, John -- http://mail.python.org/mailman/listinfo/python-list