The book 'The Art of the Metaobject Protocol' has two chapters in the public domain and available online!
Chapter 5: Concepts
Chapter 6: Generic Functions and Methods
miniblog.
Related Posts
TIL that Python allows you to override subclass logic with __subclasshook__! This lets you define protocols, or cute things like isinstance(Noon(), PalindromicName).
Python goes all-in on metaobject protocols :)
https://www.hillelwayne.com/negatypes/