Voir le bytecode Python
Comme on en apprend tous les jours, j’ai aujourd’hui appris qu’il est très simple de voir le bytecode d’une fonction (en tout cas, pour l’implémentation de référence, CPython). Il suffit pour cela d’utiliser le module dis, qui est fourni par défaut dans Python.
Voici un exemple en Python 2.7.5 :
>>> def op(a,b,c):
... return a + b - c * a
...
>>> op
<function op at 0x10b815938>
>>> import dis
>>> dis.dis(op)
2 0 LOAD_FAST 0 (a)
3 LOAD_FAST 1 (b)
6 BINARY_ADD
7 LOAD_FAST 2 (c)
10 LOAD_FAST 0 (a)
13 BINARY_MULTIPLY
14 BINARY_SUBTRACT
15 RETURN_VALUE
>>>
La page de documentation décrit aussi les instructions du bytecode.




Laisser un commentaire