[issue39800] Inconsistent/incomplete disassembly of methods vs method source code
S Murthy
report at bugs.python.org
Sat Feb 29 12:09:54 EST 2020
S Murthy <smurthy at pm.me> added the comment:
@steven.daprano In this case, the method f was created by via def. And calling dis.dis(s) where s is the source code of f (say s = inspect.getsource(f)) shows the bytecode both for the header and the body, as is clear enough from the example I first posted.
>>> dis.dis('def f(x): return x**2')
1 0 LOAD_CONST 0 (<code object f at 0x10b0f7f60, file "<dis>", line 1>)
2 LOAD_CONST 1 ('f')
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (f)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
Disassembly of <code object f at 0x10b0f7f60, file "<dis>", line 1>:
1 0 LOAD_FAST 0 (x)
2 LOAD_CONST 1 (2)
4 BINARY_POWER
6 RETURN_VALUE
The first block of instructions here are for the def statement, and the second block for the return statement.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39800>
_______________________________________
More information about the Python-bugs-list
mailing list