J'ai une variable qui est une lambda fonction :
Existe-t-il un moyen de récupérer la formule de fonc sous forme de chaîne de caractères "x**2+1" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonc = lambda x: x**2+1
J'ai une variable qui est une lambda fonction :
Existe-t-il un moyen de récupérer la formule de fonc sous forme de chaîne de caractères "x**2+1" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonc = lambda x: x**2+1
Directement je ne pense pas, mais tu dois pouvoir récupérer l'arbre syntaxique avec ast (Python >= 2.6) ou compiler.ast (Python <= 2.5)
Merci. Pour mon propos cela risque de demander trop de travail. Je regarderais quand même cela à l'occasion.
Suppose que ton module est enregistré sous le nom this_file.py:
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 this_file=open("this_file.py","r") fonc1=lambda x:x*x fonc2=lambda x:2*x n1=fonc1.func_code.co_firstlineno n2=fonc2.func_code.co_firstlineno for i in range(0,n1): s=this_file.readline() body= s.find("=") print s[body+1:] this_file.close()
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
Toujours regardé dans les module de python
utilise inspect
tu aura simplement à faire
inspect.getsource(fonc).split(':')[1]
Voila
Partager