Wait, what are we talking about again?
Python never fails to amaze me. Everything in the language is a thing that you can redefine. The more I learn about it, the more it reminds me of Lisp, which I had the pleasure (and trauma) of first using more than 25 years ago. Once I wrapped my head around the basics of Lisp, I realized it's a mind-altering experience. I'm long overdue to return to learning more about functional programming.
Pretty much goes for any dynamic language, perl/ruby/javascript/etc...
Compare and contrast: http://docs.python.org/3/reference/datamodel.html#special-me...
Ruby provides roughly the same level of hooking (not sure it allows overriding instance or subclass checks, but it allow overriding things Python does not as well), but JS most definitely does not.
Also I definitely need to learn more about Python. It's always deeper than I realize.