import types def fun(x): return lambda : x + 5 code_args = [ getattr(fun.__code__, a) for a in ( 'co_argcount', 'co_posonlyargcount', 'co_kwonlyargcount', 'co_nlocals', 'co_stacksize', 'co_flags', 'co_code', 'co_consts', 'co_names', 'co_varnames', 'co_filename', 'co_name', 'co_qualname', 'co_firstlineno', 'co_linetable', 'co_endlinetable', 'co_columntable', 'co_exceptiontable', 'co_freevars', ) ] print('code_args ', code_args) code = types.CodeType(*code_args) print('code ', code) new_fun = types.FunctionType(code, globals()) print('new-fun ', new_fun) nf = new_fun(5) print(nf) print( nf())