Fonction dir() de Python

Python3 内置函数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

# Afficher tous les attributs et méthodes d'une liste
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 :

  1. Ceux commençant par un double underscore__sont des attributs/méthodes spéciaux (méthodes magiques).
  2. Ceux sans double underscore sont des méthodes publiques, telles queappend, sortetc.

Exemple 2 : Afficher les attributs d'une classe personnalisée

Exemple

class Person:
    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

# Sans paramètres, renvoie la liste des noms dans la portée actuelle
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.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions