On Dec 8, 2:55 pm, Arnaud Delobelle <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] writes: > > class C: > > def createfunc(self): > > def self.func(arg): > > return arg + 1 > > > Or, after the class definition is done, to extend it dynamically: > > > def C.method(self, arg): > > self.value = arg > > > ...which would be the equivalent of the following: > > > def method(self, arg): > > self.value = arg > > C.method = method > > What about the following then? > > functions = {} > > def functions['square'](x): > return x*x > > def functions['cube'](x): > return x**3 > > -- > Arnaud
I agree that it's an extension (extrapolation) of the 'def self.meth' notation. For 'func_name', would you use the quoted string? Would you allow arbitrary expressions for the string, and the dictionary to add to? For example: def dict_val( )[ "name%i"% int_val( ) ]( self, arg, arg, arg ): ... It's not much worse than: (Unproduced) def anon( self, arg, arg, arg ): ... dict_val( )[ "name%i"% int_val( ) ]= anon #or if you really want the target before the def: @assign( dict_val( ), "name%i"% int_val( ) ) def _( self, arg, arg, arg ): ... And the latter are already both legal. But there have been PEPs accepted before that abbreviate 2 lines into 1. -- http://mail.python.org/mailman/listinfo/python-list