On 2/8/06, Delaney, Timothy (Tim) <[EMAIL PROTECTED]> wrote: > adam johnson wrote: > > > Hi All. > > I was wondering why defining a __call__ attribute for a module > > doesn't make it actually callable. > > For the same reason that the following doesn't work > > class A (object): > > def __init__(self): > self.__call__ = A.hello > > def hello (self): > print 'Hello, world!' > > a = A() > a() > > Traceback (most recent call last): > File "D:\Python\modules\testclasscall.py", line 10, in ? > a() > TypeError: 'A' object is not callable > > The __call__ attribute must be defined on the class (or type) - not on > the instance. A module is an instance of <type 'module'>. >
A very easy example: >>> class A: ... def __call__(self): ... print 'call' ... >>> a = A() >>> a() call I'm not sure that module can also has __call__() method just like class. I havn't seen the way before. -- I like python! My Blog: http://www.donews.net/limodou NewEdit Maillist: http://groups.google.com/group/NewEdit -- http://mail.python.org/mailman/listinfo/python-list