Anjana Vakil - Exploring Python Bytecode
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! |