Fonction dir() de Python
Fonctions intégrées de Python3
dir()C'est une fonction intégrée à Python utilisée pour obtenir une liste des attributs et méthodes d'un objet.
dir()Renvoie une liste contenant les noms de tous les attributs et méthodes de l'objet. Cette fonction est très utile pour explorer des objets inconnus, déboguer du code et comprendre les structures de classes.
Définition du mot: dirOuidirectoryAbréviation de (directory), ici faisant référence à la liste des attributs et méthodes.
Syntaxe de base et paramètres
Format de syntaxe
dir(object) dir()
Description du paramètre
- Paramètre object(facultatif) :
- Type : Tout objet
- Description : L'objet dont vous souhaitez obtenir la liste des attributs. Si aucun paramètre n'est passé, elle renvoie la liste des noms dans la portée actuelle.
Description de la fonction
- Valeur de retour: Renvoie une liste de chaînes contenant les noms des attributs et méthodes.
- Caractéristiques: La liste est triée par ordre alphabétique.
Exemples
Exemple 1 : Afficher les attributs d'un objet
Exemple
print(dir([]))
# Sortie : ['__add__', '__class__', '__contains__', ... 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
# Afficher les attributs d'une chaîne de caractères
print(dir(""))
# Sortie : ['__add__', '__class__', '__contains__', ... 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
# Afficher les attributs d'un dictionnaire
print(dir({}))
# Sortie : ['__class__', '__contains__', ... 'clear', 'copy', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
Sortie attendue :
Renvoie une liste de tous les noms d'attributs et de méthodes de l'objet.
Explication du code :
- Ceux commençant par un double underscore
__sont des attributs/méthodes spéciaux (méthodes magiques). - Ceux sans double underscore sont des méthodes publiques, telles que
append,sortetc.
Exemple 2 : Afficher les attributs d'une classe personnalisée
Exemple
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"Bonjour, je suis {self.name}"
# Créer une instance
p = Person("Tom", 20)
# Afficher les attributs d'instance
print(dir(p))
# Sortie : ['__class__', '__delattr__', '__dict__', '__init__', ... 'age', 'greet', 'name']
# Filtrer pour afficher uniquement les méthodes non spéciales
attrs = [attr for attr in dir(p) if not attr.startswith('_')]
print(attrs) # Sortie : ['age', 'greet', 'name']
Sortie attendue :
['__class__', '__delattr__', '__dict__', '__init__', ... 'age', 'greet', 'name'] ['age', 'greet', 'name']
Explication du code :
__dict__Contient les attributs d'instance de l'objet.- Filter
__Exclure les méthodes commençant par (doubles traits de soulignement) pour obtenir les attributs publics.
Exemple 3 : Utilisation sans paramètres
Exemple
print(dir())
# Sortie : ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
# Afficher après import du module
import os
print(dir())
# Inclura 'os' dans la liste
# Afficher les attributs du module
import json
print(dir(json))
# Sortie : ['JSONDecodeError', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'decoder', 'dump', 'dumps', 'encoder', 'load', 'loads', 'tool']
Sortie attendue :
Renvoie la liste des noms disponibles dans la portée actuelle.
dir()C'est un outil puissant pour explorer les objets et modules Python, particulièrement adapté à l'apprentissage interactif et au débogage.
Fonctions intégrées de Python3
Autres extensions