Via Matt, IBM developerWorks: Charming Python: Multiple dispatch, "Generalizing polymorphism with multimethods".
Object-oriented programming gains much of its versatility through polymorphism: objects of different kinds can behave in similar ways, given the right contexts. But most OOP programming is single dispatch; that is, just one designated object determines which code path is taken. Conceptually, a more general technique is to allow all the arguments to a function/method to determine its specialization. This article presents an implementation of multiple dispatch in Python, and shows examples where this makes for better programs.
If there's anything more that'll help me understand multiple dispatch, this article will be it.
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):