module with __call__ defined is not callable?
Delaney, Timothy (Tim)
tdelaney at avaya.com
Tue Feb 7 21:58:13 EST 2006
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'>.
Tim Delaney
More information about the Python-list
mailing list