2.4. Optimization Disassembler
dismodule - Built-in module for disassembling Python bytecode.
2.4.1. Programmatic Use
>>> def add(a, b):
... return a + b
...
...
>>> from dis import dis
>>> dis(add)
1 RESUME 0
2 LOAD_FAST_BORROW_LOAD_FAST_BORROW 1 (a, b)
BINARY_OP 0 (+)
RETURN_VALUE
2.4.2. String Use
>>> from dis import dis
>>>
>>> code = '''
... def add(a, b):
... return a + b
... '''
>>>
>>> dis(code)
0 RESUME 0
2 LOAD_CONST 0 (<code object add at 0x..., file "<dis>", line 2>)
MAKE_FUNCTION
STORE_NAME 0 (add)
LOAD_CONST 1 (None)
RETURN_VALUE
Disassembly of <code object add at 0x..., file "<dis>", line 2>:
2 RESUME 0
3 LOAD_FAST_BORROW_LOAD_FAST_BORROW 1 (a, b)
BINARY_OP 0 (+)
RETURN_VALUE
2.4.3. Console Use
$ cat main.py
def add(a, b):
return a + b
$ python -m dis main.py
0 RESUME 0
1 LOAD_CONST 0 (<code object add at 0x102641c50, file "main.py", line 1>)
MAKE_FUNCTION
STORE_NAME 0 (add)
LOAD_CONST 1 (None)
RETURN_VALUE
Disassembly of <code object add at 0x102641c50, file "main.py", line 1>:
1 RESUME 0
2 LOAD_FAST_BORROW_LOAD_FAST_BORROW 1 (a, b)
BINARY_OP 0 (+)
RETURN_VALUE