On Wed, Nov 12, 2014 at 2:56 PM, Marko Rauhamaa <ma...@pacujo.net> wrote:
> Ethan Furman <et...@stoneleaf.us>:
>
>> On 11/12/2014 01:41 PM, Marko Rauhamaa wrote:
>>>
>>> Or I might indicate the exhaustion of possibilities:
>>>
>>>       if status == OK:
>>>           ...
>>>       elif status == ERROR:
>>>           ...
>>>       else:
>>>           assert status == WARNING
>>>           ...
>>
>> And here's a nice example of what one should NOT do. Imagine that a
>> new status, CONFUSED is added, the above code is not modified to
>> handle it, and for whatever reason the program is being run optimized
>> -- the assert is not there, and CONFUSED is treated the same as
>> WARNING.
>
> How would it be better if you removed the assert then?

You don't need to remove it. Just reorganize it to make sure it
indicates actual exhaustion of possibilities. E.g. using the "assert
False" pattern from your post:

if status == OK:
    ...
elif status == ERROR:
    ...
elif status == WARNING:
    ...
else:
    assert False
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to