I was reading about this because we tend to use that style the "if not obj" practice.

If I read correctly, according to the docs when we do this boolean test on an object we're actually calling __nonzero__

http://docs.python.org/2/reference/datamodel.html#object.__nonzero__

I think doing "if obj" is shorter, yes, but ultimately can lead to unpredictable results.