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 <rep...@bugs.python.org>
<http://bugs.python.org/issue18738>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to