I'm not sure if I like Python's dynamic-ness.  It often results in me forgetting to check a type, trying to call an attribute and getting the NoneType (or any other) has no attribute x error. A lot of them are pretty harmless but if not handled correctly they can bring down your entire app/process/etc. 
Over time I got better predicting where these could pop up and adding explicit type checking, but because I'm only human I miss one occasionally and then some end-user finds it.
So I'm interested in your strategy to avoid these. Do you use type-checking decorators? Maybe special object wrappers? 
Please share...
If you write good unit tests for all of your code, you should find the errors very quickly when testing code.
What is your strategy to avoid dynamic typing errors in Python (NoneType has no attribute x)?