Fonction intégrée Python dir()

À partir de la documentation Python 3

Sans argument, retourne la liste des noms dans la portée locale actuelle. Avec un argument, tente de retourner une liste d'attributs valides pour cet objet.

Introduction

La fonction dir() en Python est une fonction intégrée puissante qui retourne une liste de noms dans l’espace de noms actuel ou les attributs d’un objet donné. Elle est couramment utilisée pour introspecter et explorer des objets, des modules et des classes, vous aidant à découvrir les méthodes, attributs et noms disponibles avec lesquels vous pouvez travailler.

Syntaxe

dir([object])
  • object (optionnel) : L’objet dont vous souhaitez explorer les attributs. S’il n’est pas fourni, elle retourne les noms dans l’espace de noms actuel.

Exploration des noms dans l’espace de noms actuel

a = 10
b = "Hello"
def my_function():
    pass

print(dir())
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'my_function']

Exploration des attributs de module

import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', '... ]

Exploration des attributs d’objet

class MyClass:
    def __init__(self):
        self.x = 5
        self.y = "Hello"

obj = MyClass()
print(dir(obj))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ... 'x', 'y']

Utilisation de dir() avec des types intégrés

my_list = [1, 2, 3]
print(dir(my_list))
[..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Filtrage de la sortie de dir()

import math
print([name for name in dir(math) if not name.startswith("__")])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', ... ]

Liens pertinents