Exercices Architecture & Patterns Créer une classe avec type()
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Créer une classe avec type()

En Python, les classes sont elles-memes des objets. Et elles sont créées par type(). Quand tu ecris class Animal: ..., Python appelle en fait type('Animal', (), {...}) en coulisses.

La forme a 3 arguments de type() permet de créer des classes dynamiquement :
type(nom, bases, attributs)

- nom : le nom de la classe (string)
- bases : les classes parentes (tuple, utilise () pour aucune)
- attributs : un dictionnaire avec les attributs et méthodes

Exemple :
def dire_bonjour(self):
return 'Bonjour !'

MaClasse = type('MaClasse', (), {'saluer': dire_bonjour})
obj = MaClasse()
obj.saluer() # 'Bonjour !'

Utilise type() pour créer dynamiquement une classe Animal avec :
- Un attribut de classe espece = 'inconnue'
- Un __init__(self, nom) qui stocke self.nom
- Une méthode parler(self) qui retourne le texte du nom suivi de 'dit: ...'

Exemple :
a = Animal('Rex')
a.parler() # 'Rex dit: ...'
Animal.espece # 'inconnue'

Tests (2/4)

Instance
a = Animal('Rex')
assert a.nom == 'Rex'
Méthode parler
a = Animal('Rex')
assert a.parler() == 'Rex dit: ...'

+ 0 tests cachés

Indices (3 disponibles)

solution.py