Passer une fonction en paramètre à une autre [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
5 août 2014
-
Messages postés
8
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
5 août 2014
-
Bonjour,

Je souhaite passer une fonction à une autre. Non pas le résultat comment dans :

maFonction(pow(2,2))


qui revient au même que

maFonction(4)


mais véritablement que maFonction() puisse exécuter la fonction que je lui donne en paramètre. Quelque chose du style:

maFonction( func_param, x):
    return func_param(x)



ce qui donnerait quelque chose de ce genre à l'exécution:

maFonction( math.sqrt, 4)
>>> 2

maFonction( math.sin, 60)
>>> -0.3048106211


J'ai besoin de cela car je travaille sur un script d'étalonnage. J'ai différents paramètres à étalonner. Cela signifie que les fonctions à appeler pour interroger ces paramètre sont différentes mais que le mécanisme général est toujours le même (capture de N point, calcule de l'offset puis de la pente...)

Je ne sais pas si cela est possible en python. J'espère que j'ai été clair dans mon explication, sinon faites le moi savoir!

Merci

2 réponses


Eh bien tu as donné la réponse

def maFonction(func, param):
    return func(param)


Je vois pas où est le problème, car tu le fais correctement selon moi...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
5 août 2014
1
hello,

en effet, cela fonctionne...

>>> def a(func, x):
... return func(x,2)
...
>>> a(math.pow,2)
4.0
>>> a(math.log,2)
1.0
>>> a(math.log,10)
3.3219280948873626
>>>


Poser une question n'est jamais bête mais ne pas essayer avant l'est un peu...

Cela me semblait invraisemblable.

Je suis un peu Monsieur Jourdain qui faisait de la prose sans le savoir (lire Le Bourgeois gentilhomme de Molière)

Bon ben merci fred1599 et à bientôt

SuiHerger