Stefan Behnel wrote:
Thanks for the quick answer. I didn't know they were class-level
methods. Too bad. Guess I'll stick with indirection then.
Here is one way of doing that indirection I just thought of--have
the class __call__ attribute call on the instance __call__
attribute:
>>> class MyClass(object):
... def __init__(self, func):
... self.__call__ = func
... def __call__(self, *args, **keywds):
... return self.__call__(*args, **keywds)
...
>>> def f1(): return "foo"
...
>>> def f2(x, y): return x+y
...
>>> MyClass(f1)()
'foo'
>>> MyClass(f2)(30, 12)
42
I still can't figure out whether this is elegant, or opaque and
to be avoided. <wink>
--
Michael Hoffman
--
http://mail.python.org/mailman/listinfo/python-list