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