Coding style

Georg Brandl g.brandl-nospam at gmx.net
Wed Jul 19 14:22:08 EDT 2006


Antoon Pardon wrote:

>> Other than in PHP, Python has clear rules when an object of a builtin type
>> is considered false (i.e. when it's empty). So why not take advantage of
>> this?
> 
> Because it doesn't always do what I want.
> 
> I once had a producer consumer code. When the client asked whether new
> items were available the function could return three different values
> 
>   1) a list with items, to be consumed
>   2) an empty list (meaning there were no items available for the
>                     moment but there could be in the future
>   3) None (meaning the producer was done)
> 
> Just testing for the truth value of the returned result in order
> to see whether the client should continue or not would often
> have made the client exit prematurely.
>
> IME such cases where testing for the truth value of an object
> don't give the expected result, happen often enough to make me
> carefully think about what I want to test for and then explicitly
> do so.

You're right, carefully thinking is always a good thing. Not using a
language feature just because it would fail in another case is not.

Georg



More information about the Python-list mailing list