nom de fonction en variable
Bonjour,
Je suis en train de réaliser un programme en python qui permet de faire des regroupements de modalités de variables de façon automatique.
Pour cela, en fonction des variables, j'ai des types de regroupements différents, allant de 1 à 5.
Pour chacun de ces regroupements, j'ai écrit une fonction (exemple : f_regroup_type_1 pour le regroupement de type 1)
J'ai ensuite écrit une fonction, qui va exécuter automatiquement les fonctions associées au type de regroupement :
Code:
1 2 3 4 5 6 7 8 9
| def f_variables_a_regrouper():
for i in xrange(len(regroupement_var[0])) : #regroupement_var = liste de liste au format [[liste nom variable], [liste recence variable], [liste type regroupement]]
var_a_regr = regroupement_var[0][i] #récupération de la ième variable
print("var a regr", var_a_regr)
type_a_regr = regroupement_var[2][i] #récupération du type de regroupement de la i-ème variable
print("type a reg", type_a_regr)
nom_fonction="f_regroup_type_" + str(type_a_regr) #création du nom de la fonction associée
print(nom_fonction)
nom_fonction(var_a_regr) #appel de la fonction f_regroup_type_X pour la var VAR_A_REGR |
Les résultats pour var_a_regr et type_a_regr sont corrects, ainsi que pour nom_fonction :
Code:
1 2 3
| ('var a regr', 'nb_titre_0_3')
('type a reg', 1)
f_regroup_type_1 |
Mais j'ai l'erreur suivante :
Code:
TypeError: 'str' object is not callable
J'ai l'impression que mon programme ne fonctionne pas car Python pense que nom_fonction est un nom de fonction (!) et pas une variable. Est-ce bien ça?
Comment corriger ce pb?
Merci d'avance pour vos réponses.
Meuah