Hi,

Being in an exeption of my own, I want to print the name of the caller, and
I'm looking for a way to have it.

I've found a lot of recipe all of them using what seems to be, according to
me, a not so good trick : all those recipe make use of
sys._getframe(1).f_code.co_name, such as in this exemple :

import sys

def whoami():
   print "Who call me ? : ", sys._getframe(1).f_code.co_name
   print "Who am I ? : ", sys._getframe(0).f_code.co_name

def print_caller_name():
   whoami()

if __name__ == "__main__":

   print_caller_name()

With the following result, as expected  :

Who call me ? :  print_caller_name
Who am I ? :  whoami

A closer look at the documentation about sys._getframe at
http://docs.python.org/library/sys.html make me think it's not a good idea,
because of the note :
"*CPython implementation detail:* This function should be used for internal
and specialized purposes only. *It is not guaranteed to exist in all
implementations of Python*."

So, this trick works today, but what about tomorow ?

Is anybody have an idea how to get the the same result without _getframe ?

Thanks

Patrice.
_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to