Retrieve class name of caller

Koen Van Herck koen_van_herck at yahoo.com
Mon Sep 22 10:54:18 CEST 2003


Bertrand Geston <bergeston at yahoo.fr> wrote in message news:<bkeuos$18vsv$1 at sinclair.be.wanadoo.com>...
> Koen Van Herck wrote:
> > For debugging/logging purposes, I have a function
> > 
> > def Log(msg):
> >     print '%s.%s: %s' % (cls, method, msg)
> > 
> > I call this function from a class method, and I would like to retrieve
> > the name of the caller method and its class. I already came up with
> > 
> > method = sys._getframe(1).f_code.co_name
> > cls = sys._getframe(1).f_locals['self'].__class__
> > 
> > I wonder if there are better ways to retrieve this info. In
> > particular, my implementation assumes that the instance parameter of
> > the method is called 'self', which it usually is, of course.
> > 
> > Regards,
> > Koen.
> 
> Take look to the inspect module. Could be what you need (and even more).

OK. But if I have the frame or code object, how can I get the method
or function object? For example, for a method m I have code object c:

c = m.im_func.func_code

How can I find m from c ?




More information about the Python-list mailing list