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ștevars()saugetattr().
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ă.