Un exemple de code de la métaclasse SingletonMeta qui implémente le modèle singleton dans la classe et la classe MySingleton qui l'applique.
ex_meta_singleton.pyt
class SingletonMeta(type):
def __init__(cls, name, bases, disc, **kwargs):
cls.__instance = name
def __call__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = super().__call__(*args, **kwargs)
return cls.__instance
class MySingleton(metaclass = SingletonMeta):
pass
Python d'auto-apprentissage cité dans le chapitre 11 Syntaxe orientée objet
Recommended Posts