[pyar] introspección para debuguear un metodo

QliX=D! [aka EHB] qlixed en gmail.com
Jue Mayo 17 20:41:49 ART 2012


2012/5/14 Sebastian Bassi <sebastian.bassi en globant.com>:
> ¿Hay alguna manera de saber que función o método está llamando a otro?
> Supongamos que tengo
>
> class A():
>     def m1():
>         print "m1"
>         print "Fui llamado por", XXXX
>
>
> y quiero enterarme cada vez que se invoca m1, desde donde se lo hace.
> ¿es posible?



Fijate si te sirven estas funciones, yo las tengo metidas en un
"debug_helpers.py":

import sys

def whoami():
    t = """XtraDebugInfo:
    fname: {0}
    fline: {1}
    ffile: {2}
    """.format(sys._getframe(1).f_code.co_name,
sys._getframe(1).f_lineno, sys._getframe(1).f_code.co_filename)
    return t  #sys._getframe(1).f_code.co_name


def callersdata():
    t = """XtraDebugInfo:
    fname: {0}
    fline: {1}
    ffile: {2}
    """.format(sys._getframe(2).f_code.co_name,
sys._getframe(2).f_lineno, sys._getframe(2).f_code.co_filename)
    return t  #sys._getframe(2).f_code.co_name

def callersname():
    return sys._getframe(2).f_code.co_name

def callerslineno():
    return str(sys._getframe(2).f_lineno)


Saludos.
-EHB-



More information about the pyar mailing list