Contribute Media
A thank you to everyone who makes this possible: Read More

Exploring Python Bytecode


Anjana Vakil - Exploring Python Bytecode [EuroPython 2016] [20 July 2016] [Bilbao, Euskadi, Spain] (

Do you ever wonder how your Python code looks to the interpreter? What those .pyc files are? Why one program outperforms another, even if the code is similar? Then let’s dive into Python bytecode! Bytecode is the "intermediate language" that expresses your source code as machine instructions the interpreter can understand. In this talk we’ll see what role it plays in executing Python programs, learn to read it with the dis module, and analyze it to better understand a program’s performance.

Do you ever wonder what your simple, beautiful Python code looks like to the interpreter? Are you starting to get curious about those .pyc files that always pop up in your project, and you always ignore? Would you like to start investigating your Python code's performance, and learn why some programs you write run faster than others, even if the code looks more or less the same? Have you simply fallen so completely in love with Python that you're ready to peer deep inside its soul?

If you, like me, answered "yes" to any of these questions, join me in an illuminating adventure into the world of Python bytecode! Bytecode is the "intermediate language" that expresses your Python source code as machine instructions the interpreter (specifically CPython, the "standard" interpreter) can understand. Together we'll investigate what that means, and what role bytecode plays in the execution of a Python program. We'll discover how we simple humans can read this machine language using the dis module, and inspect the bytecode for some simple programs. We'll learn the meaning of a few instructions that often appear in our bytecode, and we'll find out how to learn the rest. Finally, we'll use bytecode to understand why a piece of Python code runs faster if we put it inside of a function.

When you go home, you'll be able to use bytecode to get a deeper understanding of your Python code and its performance. The adventure simply starts here; where it ends is up to you!

Improve this page