© 2026 Dometrain. All rights reserved.
Go past core Python by writing descriptors, metaclasses, generators, decorators, context managers, dataclasses, exception groups and asyncio code in 55 graded exercises that run in your browser.
Knowing Python syntax is not the same as knowing why a set stops finding your objects, why a decorator hides the signature of the function it wraps, or why one failing task cancels the tasks next to it. Hands-On: Advanced Python is about those mechanisms. Across 55 exercises you write Python 3.13 in the browser, and each solution is checked by tests that look at what your code returns, including the edge cases and the failure paths.
The course starts with the object model: equality and hashing, operator fallbacks with NotImplemented, attribute delegation and copying. It moves through generators that stream lazily and clean up after themselves, decorators that keep signatures and per-function state, and context managers that roll back and restore. The middle chapters open up how Python finds attributes and builds classes: descriptors, bound methods, __slots__, __init_subclass__, type() and metaclasses. Later chapters cover dataclasses as value objects, type annotations you can inspect at runtime, exception groups with except*, structured concurrency with asyncio.TaskGroup, timeouts, cancellation and queues, and standard library structures such as bisect, heapq, ChainMap and weakref. Three capstones combine these pieces into a record validator, an async batch processor and a plugin pipeline.
The course works on its own for anyone comfortable with core Python: functions, closures, classes, inheritance, dunder methods and exceptions. It also continues directly from Hands-On: Learn Python. Topics that course introduces near its end, such as generators, decorators and async code, get a short refresher here before each exercise goes further than that course did.