El inspecter le module possède des méthodes pour récupérer le code source des objets python. Apparemment, cela ne fonctionne que si la source est située dans un fichier. Si c'était le cas, je suppose que vous n'auriez pas besoin de récupérer la source à partir de l'objet.
Les tests suivants inspect.getsource(foo)
en utilisant Python 3.6 :
import inspect
def foo(arg1,arg2):
#do something with args
a = arg1 + arg2
return a
source_foo = inspect.getsource(foo) # foo is normal function
print(source_foo)
source_max = inspect.getsource(max) # max is a built-in function
print(source_max)
Cette première impression :
def foo(arg1,arg2):
#do something with args
a = arg1 + arg2
return a
Puis échoue sur inspect.getsource(max)
avec l'erreur suivante :
TypeError: <built-in function max> is not a module, class, method, function, traceback, frame, or code object