Gabriel Rossetti schrieb: > Hello, > > I am using Partial Function Application in a class and I've come up with > a problem, when the method is called it tries to pass "self" to the > curried/partial function, but this should be the first argument in > reality, but since the function is curried, then the self gets passed as > the second argument. Here is the code : > > def __registerService(self, atomic, service): > def reg(service): > # registers the service > ... > if(atomic): > # Lock the service dict and register the service, then unlock it > self.__mutex.lock(reg, service) > self.__mutex.unlock() > else: > reg(service) > registerServiceAtomic = partial(__registerService, True) > registerServiceNonAtomic = partial(__registerService, False) > > I should pass self when applying partial, but then I can't do that since > self is not available there. Does anyone have any ideas?
Use a bound-method instead. That has the self already bound to it. Like this: class Foo: def m(self, arg): print arg f = Foo() partial(f.m, 10) Diez -- http://mail.python.org/mailman/listinfo/python-list