Re: [Tutor] Default class in module

2005-08-12 Thread Jan Eden
Hi Kent,

Kent Johnson wrote on 11.08.2005:

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.


Nice - that's a good start.

Thank you,

Jan
-- 
Common sense is what tells you that the world is flat.
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Default class in module

2005-08-11 Thread Kent Johnson
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