Exercices Architecture & Patterns Explorer le dictionnaire d'un objet
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Explorer le dictionnaire d'un objet

En Python, chaque objet possede un dictionnaire interne appele __dict__ qui contient tous ses attributs d'instance. C'est comme un carnet ou Python note tout ce qu'un objet possede.

Par exemple, si tu créés un objet avec deux attributs :

class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age

p = Personne('Alice', 30)
p.__dict__ donne {'nom': 'Alice', 'age': 30}

C'est un vrai dictionnaire Python, tu peux le parcourir, le lire, et meme le modifier (meme si c'est rarement recommande).

Écris une fonction lister_attributs(obj) qui prend un objet quelconque et renvoie la liste triee des noms de ses attributs d'instance (les clés de son __dict__).

Exemple :
class Voiture:
def __init__(self):
self.marque = 'Renault'
self.couleur = 'rouge'

v = Voiture()
lister_attributs(v) renvoie ['couleur', 'marque']

Tests (4/4)

Objet simple
class A:
    def __init__(self):
        self.x = 1
        self.y = 2
assert lister_attributs(A()) == ['x', 'y']
Un seul attribut
class B:
    def __init__(self):
        self.nom = 'test'
assert lister_attributs(B()) == ['nom']
Ordre alphabetique
class C:
    def __init__(self):
        self.z = 0
        self.a = 1
assert lister_attributs(C()) == ['a', 'z']
Plusieurs attributs
class D:
    def __init__(self):
        self.nom = 'X'
        self.age = 5
        self.ville = 'Paris'
assert lister_attributs(D()) == ['age', 'nom', 'ville']

Indices (3 disponibles)

solution.py