On 4/25/2013 3:23 PM, Barry Warsaw wrote:
My point is, "days of the week" has a natural ordering, so why wouldn't you
use IntEnum for that? Problem solved.
While the ordering is natural, some implementations start from 0, some
start from 1, and on the naming side, some start from Sunday, and some
start from Monday. So there are lots of opportunities for the numbers
vary, and having easy conversions to int which expose those numbers and
allow comparisons to integers, is adding problems, not solving them.
On 4/25/2013 3:36 PM, Ethan Furman wrote:
People like things sorted (or am I alone here?) There are three
obvious natural orderings:
1 - value
2 - definition order
3 - name
And that's my order of preference for them.
So, being blissfully unaware of the implementation issues, not having
yet read the implementation, I suggest that the preferred iteration
order should be a characteristic of the Enum when defined, and/or that
there should be a method to obtain a list in any of the natural
orderings (specifying value ordering may add a restriction that the
values be orderable, if done at definition time; if done only on
retrieval, attempting to access the list by value would raise an exception).
Another possible ordering would be "random", and for enumerations with
values that are tuples or lists or hashes, ordering by some specified
element would be conceivable. On the other hand, except for "definition"
order, all the other possible orderings could be derived externally to
the enumeration.
So if enumerations preserve/provide "definition" order, all the others
could be implemented externally or as subtypes. "Definition" order, then
is the basic ordering for enumerations because it cannot be externally
derived, other than by reading the source code.
_______________________________________________
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