Articles of introspección de

Encontrar el nombre del módulo de la excepción de origen en Python

Ejemplo: >>> try: … myapp.foo.doSomething() … except Exception, e: … print ‘Thrown from:’, modname(e) Thrown from: myapp.util.url En el ejemplo anterior, la excepción fue lanzada al módulo myapp / util / url.py. ¿Hay alguna manera de obtener el __name__ de ese módulo? Mi intención es usar esto en la función logging.getLogger .

¿Cómo obtengo la representación de cadena de una variable en python?

Tengo una variable x en python. ¿Cómo puedo encontrar la cadena ‘x’ de la variable. Aquí está mi bash: def var(v,c): for key in c.keys(): if c[key] == v: return key def f(): x = ‘321’ print ‘Local var %s = %s’%(var(x,locals()),x) x = ‘123’ print ‘Global var %s = %s’%(var(x,locals()),x) f() Los resultados son: […]

Python inspect.stack es lento

Solo estaba perfilando mi progtwig Python para ver por qué parecía ser bastante lento. Descubrí que la mayoría de su tiempo de ejecución se gastaba en el método inspect.stack() (para generar mensajes de depuración con módulos y números de línea), a 0.005 segundos por llamada. Esto parece bastante alto; ¿Es inspect.stack realmente lento, o podría […]

¿Averiguar qué funciones están disponibles desde una instancia de clase en python?

¿Cómo averiguas dinámicamente qué funciones se han definido desde una instancia de una clase? Por ejemplo: class A(object): def methodA(self, intA=1): pass def methodB(self, strB): pass a = A() Idealmente, quiero descubrir que la instancia ‘a’ tiene el método A y el método B, y qué argumentos toman?

Recuperar objeto de módulo de marco de stack

Dado un objeto de marco, necesito obtener el objeto de módulo correspondiente. En otras palabras, implementar callers_module para que esto funcione: import sys from some_other_module import callers_module assert sys.modules[__name__] is callers_module() (Eso sería equivalente porque puedo generar un seguimiento de stack en la función para este caso de prueba. Las importaciones están ahí simplemente para […]

Encontrar funciones explícitamente definidas en un módulo (python)

Ok, sé que puedes usar el método dir () para listar todo en un módulo, pero ¿hay alguna forma de ver solo las funciones que están definidas en ese módulo? Por ejemplo, supongamos que mi módulo se ve así: from datetime import date, datetime def test(): return “This is a real method” Incluso si uso […]

Imprimir nombres de variables pasadas a una función.

En algunas circunstancias, quiero imprimir una salida de estilo de depuración como esta: # module test.py def f() a = 5 b = 8 debug(a, b) # line 18 Quiero que la función de debug imprima lo siguiente: debug info at test.py: 18 function f a = 5 b = 8 Estoy pensando que debería […]

¿Cómo miro dentro de un objeto de Python?

Estoy empezando a codificar en varios proyectos usando Python (incluido el desarrollo web Django y el desarrollo de juegos Panda3D). Para ayudarme a entender lo que está pasando, me gustaría básicamente ‘mirar’ dentro de los objetos de Python para ver cómo funcionan, como sus métodos y propiedades. Entonces, digamos que tengo un objeto Python, ¿qué […]

Python: ¿Cómo recuperar información de clase de un objeto ‘marco’?

¿Es posible recuperar cualquier información de clase de un objeto de marco? Sé cómo obtener el archivo (frame.f_code.co_filename), función (frame.f_code.co_name) y número de línea (frame.f_lineno), pero me gustaría poder también obtener el nombre de la clase del objeto activo instancia del marco (o Ninguno si no está en una instancia).

Objeto llamador introspectivo

¿Cómo hago una introspección de la instancia de A desde b.func() (es decir, la propia instancia de A) ?: class A(): def go(self): b=B() b.func() class B(): def func(self): # Introspect to find the calling A instance here