Hoy temprano, solicité un pregunta sobre la forma en que Python maneja ciertos tipos de bucles. Una de las respuestas contenía versiones desmontadas de mis ejemplos.

Me gustaría saber más ¿Cómo puedo desmontar mi propio código Python?

12
A. Dorton 15 may. 2009 a las 20:12

3 respuestas

La mejor respuesta

Mire el módulo dis:

def myfunc(alist):
    return len(alist)

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              3 LOAD_FAST                0 (alist)
              6 CALL_FUNCTION            1
              9 RETURN_VALUE
12
Jason Baker 15 may. 2009 a las 16:14

Además de utilizar dis como módulo, también puede ejecutarlo como herramienta de línea de comando

Por ejemplo, en Windows puede ejecutar:

c:\Python25\Lib\dis.py test.py

Y generará el resultado desensamblado en la consola.

2
kcwu 15 may. 2009 a las 17:38

Use el módulo dis de la biblioteca estándar de Python (import dis por ejemplo, en un intérprete interactivo, luego dis.dis cualquier función que le interese -).

2
Alex Martelli 15 may. 2009 a las 16:24