Il y a une utilisation pratique pour les désassembleurs, bien que ce soit un cas très rare que je mentionne simplement pour des raisons de complétude : lorsque vous optimisez du code et que vous voulez vérifier si écrire votre code différemment peut le rendre plus rapide. Cela n'est pertinent que pour du code où la vitesse est d'une grande importance. Vous n'avez normalement pas besoin de vous préoccuper de ce type d'optimisations de bas niveau.
Par exemple, le compilateur CPython optimise les expressions contenant uniquement des littéraux, transformant quelque chose comme 'foo' + 'bar'
en 'foobar'
au moment de la compilation. Cela peut ne pas être le cas pour d'autres implémentations de Python, donc la meilleure façon de vérifier si le compilateur optimise ceci est d'utiliser un désassembleur :
>>> import dis
>>> def f():
... return 'foo'+'bar', 3*100, 'spam'*2
...
>>> dis.dis(f)
2 0 LOAD_CONST 9 (('foobar', 300, 'spamspam'))
3 RETURN_VALUE