Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Decorateur singleton pour une classe
Les decorateurs ne s'appliquent pas qu'aux fonctions. Tu peux aussi decorer des classes. Un cas d'utilisation classique : le pattern Singleton.
Le Singleton garantit qu'une classe n'a qu'une seule instance. La première fois que tu créés un objet, il est construit normalement. Les fois suivantes, tu recuperes la meme instance.
Pour implémenter ca avec un decorateur, tu remplaces la classe par une fonction qui vérifie si une instance existe deja. Si oui, elle la renvoie. Sinon, elle en crée une.
Le mot-cle nonlocal permet de modifier une variable de la portee englobante depuis une fonction imbriquee.
Écris un decorateur singleton qui garantit qu'une classe decoree ne peut avoir qu'une seule instance.
Exemple : @singleton class Config: def __init__(self): self.debug = False