Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

nom de fonction...

3 réponses
Avatar
fred
Bonsoir,

J'aimerais afficher le nom de la fonction exécutée.

Soit

from sys import _getframe

class Foo(HasTraits):

def foo(self):
print 'my name is', _getframe().f_code.co_name


Ok.

« Ça marche ».


Sauf que je n'ai pas franchement envie de me taper des _getframe
à tout bout de champ dans mon code.
Je préfèrerais définir une fonction qui me renvoit le nom de la fonction
appelante.

Sauf que si je mets _getframe dans une fonction, évidemment, le nom renvoyé est
celui de cette fonction, et non pas celui de la fonction qui a appelé cette
fonction :

def bar():
return (_getframe().f_code.co_name)

class Foo(HasTraits):

def foo(self):
print 'my name is', bar()


Comment est-ce donc que je pourrais bien faire pour obtenir le résultat
voulu ?

Merci d'avance.

Cordialement.

--
Fred

3 réponses

Avatar
fred
fred a écrit :

Hum...

def bar():
return (_getframe(1).f_code.co_name)

Merci pour ce post d'un intérêt plus que limité, fred,
quand tu trouves la réponse 2 mn après avoir posté.

--
Fred
Avatar
moky
> Merci pour ce post d'un intérêt plus que limité, fred,
quand tu trouves la réponse 2 mn après avoir posté.



Non, c'est cool. Je me posais justement la question de temps en temps.
Jusqu'à présent je suis parvenu à contourner le problème, mais le jour
où je dois le faire, je sais chercher.

Ce n'est pas parce que tu fais un monologue que personne n'écoute ;)

Bonne nuit
Laurent
Avatar
fred
moky a écrit :

Ce n'est pas parce que tu fais un monologue que personne n'écoute ;)


Je vois ça ! :-)

--
Fred