Jan Eden wrote: > Hi, > > I'd like to pack some modules in a package. Each module contains a single > class, which forces me to > > from Pythonsite.Show import Page > page = Page() > ... > > class Page(Site.DB): #class DB from module Site in package Pythonsite > ... > > Is there a way to define a default class for a module which would me allow to > > from Pythonsite import Show > page = Show() #page as an instance of default class in Show > > class Page(Site): #Page as a subclass of default class in Site
I don't know of any way to do exactly what you ask. However you can use the __init__.py module of the package to promote classes to package level visibility. For example suppose you have mypackage/ __init__.py - empty myclass.py - defines MyClass myotherclass.py - defines MyOtherClass To use this you would for example from mypackage.myclass import MyClass mc = MyClass() But if you put these lines in __init__.py: from mypackage.myclass import MyClass from mypackage.myotherclassimport MyOtherClass this brings the class names into the module namespace. Now you can say from mypackage import MyClass mc = MyClass() I suppose you could do your example by including this line in __init__.py: from Pythonsite import Show Show = Show.Page Then clients that say from Pythonsite import Show will actually get Show.Page which is what Pythonsite.Show is now bound to, but that seems unneccesarily twisted and obscure to me. HTH Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor