TK <[EMAIL PROTECTED]> writes: > Simon Percivall wrote: >> Look at http://docs.python.org/ref/callable-types.html >> >>>>>class Test(object): >> ... def __call__(self): >> ... print "the instance was called" >> ... >> >>>>>t = Test() >>>>>t() >> the instance was called >> Is this what you wanted? > > Sorry but it does not work. Here's my code: > > >>> class Test(object): > ... def __call__(self): > ... print 'Hi' > ... > >>> Test() > <__main__.Test object at 0x3e6d0>
Test() invokes the class, which returns an instance of the class. Look back at what Simon did. He stored the value returned by Test() as t, then called t with "t()". That's what __call__ is - the routine invoked when an instance of a class is invoked as a callable object. To change what happens when the class is invoked as a callable object, you need to fool with metaclasses. It might help if you told us what you really wanted to do with this construct. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list