On 2013年2月25日 09:03:06 -0800
Eli Bendersky <[email protected]> wrote:
"DOG" > "CAT" invokes lexicographical comparison between two strings, a
well-defined and sensical operations. It simply means that in a sorted list
of strings, "CAT" will come before "DOG". This is different from an
enumeration that attempts to (at least logically) restrict a value to a set
of pre-defined entities.
No, it's not different. Like there are use cases for ordered
comparisons of strings, there are cases for ordered comparisons of
enums.
For example, if I have an enum representing SIP or HTTP response codes,
it is perfectly reasonable to write:
if code < 200:
# temporary response
...
elif code < 400:
# successful final response
...
else:
# final error response:
...
Really, there's no justification for claiming an enum should never
compare to anything else. It's entirely application-dependent.