interpreter vs. compiled

I V ivlenin at gmail.com
Fri Jul 18 00:37:59 CEST 2008


On Thu, 17 Jul 2008 15:08:17 -0700, castironpi wrote:
> The Python disassembly is baffling though.
> 
>>>> y= 3
>>>> dis.dis('x=y+1')

You can't disassemble strings of python source (well, you can, but, as 
you've seen, the results are not meaningful). You need to compile the 
source first:

>>> code = compile('y=x+1','-', 'single')
>>> dis.dis(code)
  1           0 LOAD_NAME                0 (x)
              3 LOAD_CONST               0 (1)
              6 BINARY_ADD          
              7 STORE_NAME               1 (y)
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE

You may well find these byte codes more meaningful. Note that there is a 
list of opcodes at http://docs.python.org/lib/bytecodes.html



More information about the Python-list mailing list