exec
est très probablement le builtin que tu cherche.
Exec est exécuté dans l'environnement, donc le modifie comme du code écris normalement. De fait il ne doit pas être utilisé sur du code arbitraire.
>>> exec('a = 1')
>>> a
1
>>> exec('os.path.exists = shutil.rmtree') # bad things will happen
Il est très probable que tu n'en ai pas besoin ; si tu veux jouer avec le langage, regarde plutôt la métaprogrammation et la manipulation de l'AST.
Pour utiliser exec et bien comprendre les problèmes autour : Be careful with exec.