Richard Lamboj wrote: > i want to add functions to an instance of a class at runtime. The added > function should contain a default parameter value. The function name and > function default paramter values should be set dynamical.
>>> class A(object): ... def __init__(self, x): ... self.x = x ... def m(self): ... return self.f(self.x) ... >>> a = A(42) >>> >>> def foo(self, a, b): ... return self.x + a**b ... >>> from functools import partial >>> a.f = partial(foo, a, 3) >>> a.m() 109418989131512359251L >>> 42 + 3**42 == _ True Confused? The important points are (1) functools.partial(f, a1, a2, a3, ...)(b1, b2, b3, ...) is equivalent to f(a1, a2, a3, ..., b1, b2, b3, ...) (2) If you stick a function into an instance a.f = f the call a.f() will not automagically pass self as the first argument. Peter -- http://mail.python.org/mailman/listinfo/python-list