Bonjour,
Je me demande s'il est possible (et judicieux) de créer quelque chose qui fasse ceci:
Voici un exemple concret d'utilisation. Je souhaite calculer une moyenne mobile sur x valeurs. J'ai donc une fonction qui me fait ça et qui est construite à peu près comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 funcs = (Foo(arg_1), Bar(arg_2, arg_3)) for func in funcs: func(arg)
J'aimerais pouvoir définir par la suite une fonction "héritée" de roll_average mais avec le paramètre n fixe, comme 10d_roll_average (moyenne mobile sur 10 jours). Je pourrais ainsi créer un nombre indéterminé de fonctions qui pourront toutes être appelée simplement en faisant f(array). Peut-être peut-on transformer roll_average en une classe avec comme attribut n, la période sur laquelle faire la moyenne et une méthode calc(). Un peu comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def roll_average(array, n): pass
Mais je ne trouve pas ça super élégant. Ne peut-on pas créer un alias de la méthode calc() de sorte à faire plutôt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class RollAverage(object): def __init__(self, n): self.n = n def calc(self, array): pass 10d_roll_average = RollAverage(10) res = 10d_roll_average.calc(array)
Ciao
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 10d_roll_average = RollAverage(10) res = 10d_roll_average(array)
Partager