Función incorporada dir() de Python

De la documentación de Python 3

Sin argumentos, devuelve la lista de nombres en el ámbito local actual. Con un argumento, intenta devolver una lista de atributos válidos para ese objeto.

Introducción

La función dir() en Python es una potente función incorporada que devuelve una lista de nombres en el espacio de nombres actual o los atributos de un objeto dado. Se utiliza comúnmente para introspeccionar y explorar objetos, módulos y clases, ayudándote a descubrir los métodos, atributos y nombres disponibles con los que puedes trabajar.

Sintaxis

dir([object])
  • object (opcional): El objeto cuyos atributos deseas explorar. Si no se proporciona, devuelve los nombres en el espacio de nombres actual.

Explorando Nombres en el Espacio de Nombres Actual

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

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

Explorando Atributos de Módulos

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

Explorando Atributos de Objetos

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']

Uso de dir() con Tipos Incorporados

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

Filtrado de la Salida de dir()

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

Enlaces Relevantes