On Nov 27, 5:47 pm, Terry Reedy <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > Emanuele D'Arrigo: > >> I can fragment the code of the original method into one public method and > >> a few private support methods.< > > > Python also support nested functions, that you can put into your > > method. The problem is that often unit test functions aren't able to > > test nested functions. > > > A question for other people: Can Python change a little to allow > > nested functions to be tested? I think this may solve some of my > > problems. > > The problem is that inner functions do not exist until the outer > function is called and the inner def is executed. And they cease to > exist when the outer function returns unless returned or associated with > a global name or collection.
Of course, you could resort to terrible evil like this: import types def f(): def sub_function(): return 4 nested_function = types.FunctionType(f.func_code.co_consts[1], {}) print nested_function() # Prints 4 But don't do that! > > A 'function' only needs to be nested if it is intended to be different > (different default or closure) for each execution of its def. -- http://mail.python.org/mailman/listinfo/python-list