Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
Ajouter un attribut a la volee
En Python, tu peux ajouter des attributs a un objet apres sa création. C'est la nature dynamique du langage. Tu n'es pas oblige de tout déclarer dans __init__.
Par exemple : class Boite: pass
b = Boite() b.contenu = 'bijoux' b.contenu donne 'bijoux'
Tu peux aussi utiliser la fonction sétattr(objet, nom, valeur) pour faire la meme chose de maniere programmatique. C'est utile quand le nom de l'attribut est dans une variable : nom_attr = 'couleur' sétattr(b, nom_attr, 'rouge') b.couleur donne 'rouge'
Écris une fonction ajouter_attributs(obj, attributs) qui prend un objet et un dictionnaire d'attributs a ajouter. La fonction ajoute chaque cle/valeur du dictionnaire comme attribut de l'objet, puis renvoie l'objet modifie.
Exemple : class Vide: pass v = Vide() ajouter_attributs(v, {'nom': 'Alice', 'age': 30}) v.nom donne 'Alice' v.age donne 30
Tests (4/4)
Ajouter deux attributs
class V:
pass
v = V()
ajouter_attributs(v, {'x': 1, 'y': 2})
assert v.x == 1 and v.y == 2
Ajouter un seul attribut
class V:
pass
v = V()
ajouter_attributs(v, {'nom': 'test'})
assert v.nom == 'test'
Renvoie l'objet
class V:
pass
v = V()
résultat = ajouter_attributs(v, {'a': 1})
assert résultat is v
Dictionnaire vide
class V:
pass
v = V()
ajouter_attributs(v, {})
assert v.__dict__ == {}
Indices (3 disponibles)
Solution officielle
def ajouter_attributs(obj, attributs):
for nom, valeur in attributs.items():
sétattr(obj, nom, valeur)
return obj