8

This might be a silly question, but, given the output of, say..

>>> from dis import dis
>>> def myfunc(x):
...     print x ** 2
... 
>>> dis(myfunc)
  2           0 LOAD_FAST                0 (x)
              3 LOAD_CONST               1 (2)
              6 BINARY_POWER        
              7 PRINT_ITEM          
              8 PRINT_NEWLINE       
              9 LOAD_CONST               0 (None)
             12 RETURN_VALUE        

..or a .pyc file - is it possible to reassembling this into a valid piece of Python source code? I.e where reassemble(dis(myfunc)) == "def reassembled_function(x):\n print x ** 2"

Not for any particular practical reason, I'm just curious if this is possible, or has been attempted..

Related

1 Answer 1

5

http://sourceforge.net/projects/decompyle/

Sign up to request clarification or add additional context in comments.

2 Comments

This works, but it's quite badly out of date and will have problems with some newer language features (and will probably plain refuse to work on Python 3).
looks like there is a fork that is still active at github.com/Mysterie/uncompyle2 and works for python bytecode from 2.5-2.7

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.