Suggestions for good programming practices?

Quinn Dunkan quinn at upchuck.ugcs.caltech.edu
Thu Jun 27 07:53:29 CEST 2002


On Mon, 24 Jun 2002 16:31:14 -0500, Mark McEahern <marklists at mceahern.com>
wrote:
>How do you choose between these:
>
>	if x is None:
>
>	if x:
>
>The latter is what you'd use if you wanted to work with instances that
>defined __nonzero__ and or __len__.  In other words, you don't really care
>what the type of x is, nor whether it's identity is zero, just whether it
>considers itself nonzero.
>
>Is one more or less polymorphic than the other?  I don't really know.  But
>it sure does sound good.

They both serve their own purposes and you have to know what you want.

For example, I recently tracked down an annoying bug where I said 'if x' when
I meant 'if x is not None'.  Everything worked until x's __len__ returned 0
and it was hard for me to see 'if x' as being buggy code.  I wasted a lot of
time trying to figure out why 'x' was occaisionally None.



More information about the Python-list mailing list