09-18, 11:00–11:30 (Europe/London), Assembly Room
Learn about Python's memory handling, including:
- what pointers are, and why it matters
- what object IDs are, and what they mean
- how CPython can tell when you're done with an object, and what happens next
No C knowledge required!
Python is a wonderful thing that takes all the complication of memory management away from us. We don’t have to worry about pre-allocating memory for our objects, or remember to free it once we’re done. So, given that we’re not doing it manually, how do these things happen? Do we have to care? Well, sometimes. Maybe.
In this talk, we’ll discuss what a pointer is, where they crop up in Python, and what you need to know in order to avoid getting tripped up by them. We’ll also cover the
id of an object, how it varies between different implementations like IronPython and PyPy, and why
is is different from
==. Finally, we’ll talk about garbage collection, what reference counting is, and how CPython knows when it’s time to get rid of unused objects.
Whether you just want to understand what’s going on under the hood without having to dive into the implementation, or you’re on the hunt for some new diabolical things to do with code (self-referential lists are only the beginning!), come along to this talk and learn about the pointers in your Python.
This talk is aimed at anyone with an interest in how Python handles objects in memory, or who’s ever been confused by side-effects popping up in their code. Absolutely no knowledge of C is required, and Python beginners are extremely welcome.
Eli has been a nerd for their entire life, and has now been working in tech for 6 years after being released back into the wild from university.
These days they can be found at Anvil, where they yell about Python and the web and get paid for it. In their spare time they enjoy hanging out with their cat, knitting, and trying to stop their cat from eating their knitting.