On Sun, 07 Apr 2013 10:54:46 +0000, Helmut Jarausch wrote: > class Foo : > .... > def to_binary(self, *varargs, **keys): > .... > code= ... > args= ... > # Add function header > code = 'def to_binary(self, %s):\n' % ', '.join(args) + code > exec(code) > self.to_binary = new.instancemethod(to_binary, self, > self.__class__) > return self.to_binary(*varargs, **keys)
Self-modifying code! Yuck! Nevertheless, try changing the line with new.instancemethod to this: self.to_binary = types.MethodType(to_binary, self) and see if it works. If it complains about the call to exec, then change that part of the code to this: ns = {} exec(code, ns) to_binary = ns['to_binary'] self.to_binary = types.MethodType(to_binary, self) -- Steven -- http://mail.python.org/mailman/listinfo/python-list