Ethan Furman added the comment:
On 08/14/2013 09:27 PM, on PyDev, Nick Coghlan wrote:
> For enums, I believe they should be formatted like their
> base types (so !s and !r will show the enum name, anything without
> coercion will show the value).
I agree. While one of the big reasons for an Enum type was the pretty str and
repr, I don't see format in that area.
So, these are some of the ways we have to display an object:
str() calls obj.__str__()
repr() calls obj.__repr__()
"%s" calls obj.__str__()
"%r" calls obj.__repr__()
"%d" calls... not sure, but we see the int value
"{}".format() should (IMO) also display the value of the object
Using int as the case study, its presentation types are ['b', 'd', 'n', 'o',
'x', 'X']. Notice there is no 's' nor 'r' in there, as int expects to display
a number, not arbitrary text.
So, for mixed-type Enumerations, I think any format calls should simply be
forwarded to the mixed-in type (unless, of course, a custom __format__ was
specified in the new Enumeration).
Patch attached.
----------
nosy: +ncoghlan
Added file: http://bugs.python.org/file31494/issue18738.stoneleaf.03.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue18738>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com