Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
À quoi sert la fonction dir en Python ?
La fonction dir
permet de récupérer des informations sur un espace de
nommage ou un objet.
Utilisée sans arguments, elle retournera tous les noms définis dans l'espace de nommage local :
>>> a = 5
>>> dir()
['__annotations__',
'__builtins__',
'__doc__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'a']
On remarque dans le code ci-dessus qu'il existe de nombreux noms prédéfinis lors de l'ouverture d'un interpréteur Python ou au lancement d'un script.
C'est le cas par exemple de la variable __name__
qui dans le cas d'un script
exécuté directement, est égale à la chaîne de caractères __main__
(voir le glossaire sur name).
On remarque également le nom de la variable a
(que l'on a définie à la
première ligne) qui est donc contenu dans l'espace local de l'interpréteur
Python depuis lequel est exécutée la fonction dir
.
La fonction dir
permet également de récupérer une liste de noms appartenant
à un objet.
Cette liste de noms n'est pas exhaustive, en effet, dir
retourne une liste
de noms les plus pertinents selon les contextes.
class Voiture:
def __init__(self):
self.marque = "Renault"
self.couleur = "Rouge"
self.prix = 20000
v = Voiture()
print(dir(v))
Il est possible de surcharger cette méthode à l'intérieur d'une classe pour
indiquer quels attributs vous souhaitez retourner lors de l'utilisation de la
méthode dir
sur une instance de votre classe :
class Voiture:
def __init__(self):
self.marque = "Renault"
self.couleur = "Rouge"
self.prix = 20000
def __dir__(self):
return ["marque", "couleur"]
v = Voiture()
print(dir(v))
☝️Ici on indique que la méthode dir
ne doit retourner que les attributs
"marque"
et "couleur"
.
L'attribut "prix"
n'est donc pas affiché quand on utilise la fonction dir
sur l'instance v
.