from ast import * def makefunc(name): return FunctionDef(name=name, args=arguments( args=[], vararg=None, kwarg=None, defaults=[], kwonlyargs=[], kw_defaults=[] ), body=[ Pass() ], decorator_list=[] ) m = parse(""" def foo(): pass """) m.body.append(makefunc('bar')) fix_missing_locations(m) compile(m, 'string', 'exec')