Introspection Python

Les fonctions, variables et objets peuvent être analysés en utilisantintrospection.

Tout d'abord, en utilisant lehelp()fonction globale, nous pouvons obtenir la documentation si elle est fournie sous forme de docstrings.

Ensuite, vous pouvez utiliser print () pour obtenir des informations sur une fonction:

def increment(n):
    return n + 1

print(increment)

# <function increment at 0x7f420e2973a0>

ou un objet:

class Dog():
    def bark(self):
        print('WOF!')

roger = Dog()

print(roger)

# <main.Dog object at 0x7f42099d3340>

Letype()function nous donne le type d'un objet:

print(type(increment))
# <class 'function'>

print(type(roger)) # <class ‘main.Dog’>

print(type(1)) # <class ‘int’>

print(type(‘test’)) # <class ‘str’>

Ledir()La fonction globale nous permet de découvrir toutes les méthodes et attributs d'un objet:

print(dir(roger))

# [‘class’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘le’, ‘lt’, ‘module’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘bark’]

Leid()La fonction globale nous montre l'emplacement en mémoire de n'importe quel objet:

print(id(roger)) # 140227518093024
print(id(1))     # 140227521172384

Il peut être utile de vérifier si deux variables pointent vers le même objet.

LeinspectLe module de bibliothèque standard nous donne plus d'outils pour obtenir des informations sur les objets, et vous pouvez le vérifier ici:https://docs.python.org/3/library/inspect.html


Plus de tutoriels python: