On Mon, Feb 25, 2013 at 8:56 AM, Antoine Pitrou <solip...@pitrou.net> wrote:
> Le Mon, 25 Feb 2013 10:44:33 -0600, > Skip Montanaro <s...@pobox.com> a écrit : > > > Besides "we just don't need them int-based in these use-cases" what > > > are the reasons for the strong desire to have them be valueless? > > > > Not sure about other people, but piggybacking off C semantics, while > > convenient, reflects the limitations of the C implementation more than > > anything else. An enumeration, while you can count its items, doesn't > > imply that the elements of the enumeration are naturally ordered. If > > you force an underlying association with integers, you imply ordering > > where none naturally exists. Given this: > > > > critters = enum(DOG, CAT, RACCOON) > > > > what does it mean that DOG < CAT? > > It doesn't mean anything, but so what? "DOG" > "CAT" doesn't mean much > either, and yet it's legal in Python. > "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. That said, I'm slowly starting to realize that enums try to impose a bit of static typing on Python, which may be the cause for so much friction :-/ Eli
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com