Partage
  • Partager sur Facebook
  • Partager sur Twitter

[cls contre singleton]

Utilisation d'une classe full cls ou singleton ? Best practises.

Sujet résolu
    6 août 2014 à 22:13:19

    Bonjour à toutes et à tous,

    Et merci par avance aux futures lecteurs de ce thread.

    Je débute actuellement en python, et code une classe 'manager' que je ne veux instancier qu'une seule foi.

    Une méta-classe singleton ferrais apparament l'affaire.

    Mais par curiosité j'ai essayé de créer ma classe uniquement avec des cls à la place de self.

    Et cela fonctionne apparament. (mes objets n'ont accès qu'a des méthodes et attributs de classe et donc partage la même vue des choses)

    Mais avant que mon code prenne de l'empleur, j'aimerai savoir si cela était une mauvaise chose et à quelles limites je m'expose ?

    N'hesitez pas si je n'ai pas été clair.

    Bonne soirée à tous.

    • Partager sur Facebook
    • Partager sur Twitter
      7 août 2014 à 10:14:27

      Ça fleure bon la vieille habitude de Java/C++, ça.

      Un singleton, en Python, c'est juste un module. Tu l'instancies ou le charges quand tu l'importes, et l'état du singleton est maintenu dans les variables de module. Pourquoi faire compliqué quand on peut faire simple ?

      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
        7 août 2014 à 14:34:06

        Bonjour Nohar,

        Et merci de ta réponse, j'esperais même qu'elle vienne de toi ;).

        Je vais donc me recoder ça rapidement, mais si j'ai bien compris l'avantage serait ni plus ni moins la simplicité ?

        Paul. (And the AppleBees Birthday)

        Biz.

        • Partager sur Facebook
        • Partager sur Twitter
          7 août 2014 à 18:23:29

          Haha, je t'aurais pas reconnu ! :D

          Oui l'avantage c'est que c'est beaucoup plus simple. Tu n'as pas besoin de coder toi-même tous les mécanismes qui servent à garantir l'unicité de ton singleton puisque les imports de Python le font pour toi.

          Après ça implique aussi quelques subtilités, comme le fait de devoir utiliser le mot-clé global pour affecter de nouvelles valeurs aux attributs, mais je pense que ça vaut le coup vu la quantité de code que ça te fait économiser. :)

          • Partager sur Facebook
          • Partager sur Twitter
          Zeste de Savoir, le site qui en a dans le citron !
            7 août 2014 à 18:47:25

            Ok, super !

            Merci pour ces bonnes infos ;)

            Et j'espere à la revoillur (Passe le bonjour au reste de l'équipe) !

            A +.

            • Partager sur Facebook
            • Partager sur Twitter

            [cls contre singleton]

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown