Python Language Affiche le code source d'un objet


Exemple

Objets qui ne sont pas intégrés

Pour imprimer le code source d'un objet Python, utilisez inspect . Notez que cela ne fonctionnera pas pour les objets intégrés ni pour les objets définis de manière interactive. Pour cela, vous aurez besoin d'autres méthodes expliquées plus tard.

Voici comment imprimer le code source de la méthode randint partir du module random :

import random
import inspect

print(inspect.getsource(random.randint)) 
# Output:
#    def randint(self, a, b):
#        """Return random integer in range [a, b], including both end points.
#        """
#
#        return self.randrange(a, b+1)

Pour imprimer la chaîne de documentation

print(inspect.getdoc(random.randint))
# Output:
# Return random integer in range [a, b], including both end points.

Imprimer le chemin complet du fichier où la méthode random.randint est définie:

print(inspect.getfile(random.randint))
# c:\Python35\lib\random.py
print(random.randint.__code__.co_filename) # equivalent to the above
# c:\Python35\lib\random.py

Objets définis interactivement

Si un objet est défini de manière interactive, l' inspect ne peut pas fournir le code source, mais vous pouvez utiliser dill.source.getsource place.

# define a new function in the interactive shell
def add(a, b):
   return a + b
print(add.__code__.co_filename) # Output: <stdin> 

import dill
print dill.source.getsource(add)
# def add(a, b):
      return a + b

Objets intégrés

Le code source des fonctions intégrées de Python est écrit en c et accessible uniquement en consultant le code source de Python (hébergé sur Mercurial ou téléchargeable sur https://www.python.org/downloads/source/) .

print(inspect.getsource(sorted)) # raises a TypeError
type(sorted) # <class 'builtin_function_or_method'>