I thought the process of Python mastery went something like:
- Discover list comprehensions
 - Discover generators
 - Incorporate map, reduce, filter, iter, range, xrange often into your code
 - Discover Decorators
 - Write recursive functions, a lot
 - Discover itertools and functools
 - Read Real World Haskell (read free online)
 - Rewrite all your old Python code with tons of higher order functions, recursion, and whatnot.
 - Annoy your cubicle mates every time they present you with a Python class. Claim it could be "better" implemented as a dictionary plus some functions. Embrace functional programming.
 - Rediscover the Strategy pattern and then all those things from imperative code you tried so hard to forget after Haskell.
 - Find a balance.
 
https://stackoverflow.com/a/2576240/878451