クラスにシングルトンパターンを実装するSingletonMetaメタクラスと、これを適用したMySingletonクラスのコード例。
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 第11章オブジェクト指向構文 より引用