Comparisons and sorting of a numeric class....
Rustom Mody
rustompmody at gmail.com
Fri Jan 23 12:45:31 EST 2015
On Friday, January 23, 2015 at 11:07:48 PM UTC+5:30, Chris Angelico wrote:
> On Sat, Jan 24, 2015 at 4:22 AM, Rustom Mody wrote:
> > Strikes me that making enumerations is-equal rather than just
> > =-equal is a bit heavy-handed and unnecessary
> > What do you think?
>
> *Normal* use of an enumeration does make sense for them to be
> identical. Classic use would be like this:
>
> class AnsiColor(IntEnum):
> black = 0
> red = 1
> green = 2
> orange = 3
> # ... blue, magenta, cyan, white
> bold_black = 8
> bold_red = 9
> # etc etc etc
> bold_orange = 11
> yellow = 11 # On many screens, bold orange looks more yellow
>
> There is absolutely no difference between the ANSI color "bold orange"
> and the ANSI color "yellow". So you would expect them to be identical:
>
> >>> AnsiColor.yellow
> <AnsiColor.bold_orange: 11>
> >>> AnsiColor.yellow is AnsiColor.bold_orange
> True
>
> And they are. There's simply no use-case for equal-but-distinct
> tokens, when you're primarily using this to give names to numbers. For
> another example, you could localize all the color names, or use
> "bright" instead of "bold", or drop the underscores; but ultimately,
> if you send "\e[11m" to the console, you're going to get the same
> color, whether that 11 was called "bold_orange" or "jaune".
>
> What you're trying to do here is a hack, so it's no surprise that the
> system doesn't properly support it.
>
> ChrisA
No disagreement with the 'hack'
As for "no use case for equal but distinct tokens" - thats a strange
view given this thread
More information about the Python-list
mailing list