Bonjour,

Je me demande s'il est possible (et judicieux) de créer quelque chose qui fasse ceci:
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)
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
def roll_average(array, n):
    pass
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
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)
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
10d_roll_average = RollAverage(10)
res = 10d_roll_average(array)
Ciao