
Episode 263: Exploring Mixin Classes in Python
The Real Python Podcast
What is a good way to add isolated, reusable functionality to Python classes? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
Christopher covers a recent Real Python tutorial about developing mixin classes to reuse code across multiple Python classes. He describes how mixins rely on multiple inheritance to combine features from different classes, enhancing flexibility and code reuse.
We also share several other articles and projects from the Python community, including a news roundup, highlights from the 2024 Python Developers Survey, reasons you might not need a Python class, an exploration of asyncio’s sharp corners, an explanation of how JIT builds of CPython work, a web-based GUI library, and a project for quickly querying Python lists.
This episode is sponsored by Influxdata.
Course Spotlight: Design and Guidance: Object-Oriented Programming in Python
In this video course, you’ll learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that’s more maintainable, extensible, scalable, and testable.
Topics:
- 00:00:00 – Introduction
- 00:03:14 – Python 3.13.7 Released
- 00:03:38 – Python 3.14.0rc2 Released
- 00:04:10 – PEP 802: Display Syntax for the Empty Set
- 00:04:59 – Announcing the PSF Board Candidates for 2025
- 00:05:26 – Rodrigo - PSF - Community Service Award for Q2 2025
- 00:06:06 – Python Developers Survey 2024 Results
- 00:13:27 – pyx: A Python-Native Package Registry
- 00:15:12 – Test & Code Final Episode
- 00:15:48 – You Might Not Need a Python Class
- 00:20:52 – Sponsor: Influxdata
- 00:21:44 – asyncio: A Library With Too Many Sharp Corners
- 00:25:43 – How JIT Builds of CPython Actually Work
- 00:35:21 – Video Course Spotlight
- 00:37:12 – What Are Mixin Classes in Python?
- 00:44:05 – nicegui: Create Web-Based UI With Python
- 00:46:51 – leopards: Quickly query your Python lists
- 00:49:00 – Thanks and goodbye
Survey:
News:
- Python 3.13.7 Released
- Python 3.14.0rc2 Released
- PEP 802: Display Syntax for the Empty Set (Added)
- Announcing the PSF Board Candidates for 2025 – The Python Software Foundation elections are upon us, and this post announces this year’s candidates. Voting is September 2nd to 16th. To vote, you must be registered by August 26th.
- Rodrigo - PSF - Community Service Award for Q2 2025
- Python Developers Survey 2024 Results
- The State of Python 2025 - The PyCharm Blog
- pyx: A Python-Native Package Registry, Now in Beta – The folks at Astral, who brought you uv and more, have created a new commercial Python-native package registry called “pyx”.
- Test & Code Final Episode – After 10 years and 237 episodes, Brian Okken has decided to stop recording Test & Code. He’ll still be contributing to Python Bytes. Here’s to all his work on a great podcast over the last decade.
Show Links:
- You Might Not Need a Python Class – If you’re coming from other languages, you might think a class is the easiest way to do something, but Python has other options. This post shows you some alternatives and why you might choose them.
asyncio
: A Library With Too Many Sharp Corners –asyncio
has a few gotchas and this post describes five different problems, including: cancellation, disappearing tasks, and more.- How JIT Builds of CPython Actually Work – You don’t have to be a compiler engineer to understand how your code runs in a JIT build of CPython. This article runs you through just what happens under the covers.
- What Are Mixin Classes in Python? – Learn how to use Python mixin classes to write modular, reusable, and flexible code with practical examples and design tips.
Projects:
Additional Links:
- Episode #259: Design Patterns That Don’t Translate to Python
- Episode #123: Creating a Python Code Completer & More Abstract Syntax Tree Projects
- Specializing Adaptive Interpreter
- The LLVM Compiler Infrastructure Project
- PEP 774 – Removing the LLVM requirement for JIT builds
- Building a JIT compiler for CPython
- What they don’t tell you about building a JIT compiler for CPython
- Quiz: What Are Mixin Classes in Python?
- NiceGUI