dir() în Python

Listează numele (atribute și metode) disponibile într-un obiect sau modul.

Sintaxă
dir([obiect])

Ce face dir()

dir(obiect) returnează lista sortată a atributelor și metodelor unui obiect, modul sau clase. Fără argument, listează numele definite în locul curent. Este foarte util în consola interactivă, ca să descoperi ce poți face cu un obiect.

Numele care încep cu _ sau __ sunt interne sau speciale; de obicei le filtrezi.

Parametri

Parametru Descriere
obiect Opțional. Obiectul inspectat.

Ce returnează

O listă sortată de nume (texte).

Exemple

Exemplul 1: Metodele unui tip

metode = [m for m in dir(list) if not m.startswith("_")]
print(metode)

Rezultat

['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Exemplul 2: Atributele unui obiect propriu

class Produs:
    def __init__(self):
        self.nume = "Cafea"
        self.pret = 32.9
    def reducere(self):
        pass

print([n for n in dir(Produs()) if not n.startswith("_")])

Rezultat

['nume', 'pret', 'reducere']

Greșeli frecvente

  • Te aștepți ca dir() să arate și valorile. Arată doar numele; pentru valori folosește vars() sau getattr().

Comenzi înrudite

  • help(): Afișează documentația unei funcții, clase sau modul.
  • globals(), locals() și vars(): Returnează dicționarele cu variabilele globale, cele locale sau atributele unui obiect.
  • getattr(), setattr(), hasattr(), delattr(): Citesc, setează, verifică sau șterg un atribut al unui obiect după numele lui dat ca text.
  • type(): Returnează tipul unei valori (int, str, list…) sau, cu trei argumente, creează o clasă nouă.