• # Le global c'est bien pour du global

    Posté par . En réponse au message Argument de fonction récurrent. Évalué à 7. Dernière modification le 01 juin 2012 à 18:23.

    Le but est de passer en paramètre une variable qui serait globale autrement. Alors j'entends des voix dans le fond de la salle, notamment le mot « singleton », mais c'est une fausse bonne idée et n'est qu'une classe unique cachant une variable à portée globale.

    Et c'est quoi ton problème avec les variables globales ? Si c'est un paramètre qui doit être utilisé partout, une variable globale est tout à fait indiquée. Si c'est un paramètre spécifique à une « chose » particulière, qui sera réutilisée pour cette « chose », et bien… fait de l'objet ! Ça sert à ça…

     class Recurrent(object):
     def __init__(self, arg_r):
     self.arg_r = arg_r
     def function1(self, arg1, arg2):
     print(self.arg_r)
     # …
     def function2(self, arg1, arg2):
     self.function1(arg1, arg2)
     chose = Recurrent(42)
     chose.function2(1, 2)
    
    

    Et sache que singleton n'est pas une formule magique qui résout tous les problèmes. (j'ai l'impression des fois que les designs patterns ça fait plus de mal que de bien)