次の例のように、Python クラスにシングルトンを使用しています
class GestionnaireUtilisateur(object):
__singleton = None
def __new__(cls, *args, **kwargs):
if not cls.__singleton:
cls.__singleton = super(GestionnaireUtilisateur, cls).__new__(cls, *args, **kwargs)
return cls.__singleton
def __init__(self):
self.compte = None
次のメソッドで self.__compte を変更できます
def connexion(self, compte):
self.compte = compte
最初のオブジェクト GestionnaireUtilisateur() で、メソッド connexion('toto') を呼び出して self.compte を変更すると、結果は良好です。しかし、もう一度 GestionnaireUtilisateur() を呼び出すと、self.compte は None であり、connexion() によって渡される値ではありません。
オブジェクトが同じであるかどうかをテストします。私はこの結果を持っています
<securecloud.utilisateur.gstutilisateur.GestionnaireUtilisateur object at 0xb73aad4c>
toto
<securecloud.utilisateur.gstutilisateur.GestionnaireUtilisateur object at 0xb73aad4c>
None
誰かがアイデアを持っていますか?