Exercices Architecture & Patterns Vérifier et lire des attributs
🎉

Bravo!

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

Vérifier et lire des attributs

Python fournit trois fonctions pour manipuler les attributs d'un objet de maniere programmatique :

hasattr(obj, nom) : renvoie True si l'objet possede un attribut avec ce nom, False sinon.
gétattr(obj, nom) : renvoie la valeur de l'attribut. Leve une erreur si l'attribut n'existe pas.
gétattr(obj, nom, défaut) : renvoie la valeur de l'attribut, ou la valeur par défaut s'il n'existe pas.

Ces fonctions sont tres utiles quand tu ne sais pas a l'avance quels attributs un objet possede. Par exemple, quand tu recois un objet d'une librairie externe ou que tu ecris du code générique.

Écris une fonction lire_attribut_safe(obj, nom, défaut=None) qui renvoie la valeur de l'attribut nom s'il existe sur l'objet, ou la valeur défaut sinon.

Exemple :
class P:
def __init__(self):
self.nom = 'Alice'

p = P()
lire_attribut_safe(p, 'nom') renvoie 'Alice'
lire_attribut_safe(p, 'age', 0) renvoie 0

Tests (4/4)

Attribut existant
class P:
    def __init__(self):
        self.nom = 'Alice'
assert lire_attribut_safe(P(), 'nom') == 'Alice'
Attribut manquant avec défaut
class P:
    pass
assert lire_attribut_safe(P(), 'age', 0) == 0
Attribut manquant sans défaut
class P:
    pass
assert lire_attribut_safe(P(), 'x') is None
Défaut personnalise
class P:
    pass
assert lire_attribut_safe(P(), 'z', 'inconnu') == 'inconnu'

Indices (3 disponibles)

solution.py