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.

Logo 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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Concevoir un site comme celui-ci avec WordPress.com
Commencer