[Python-Dev] PEP-435 reference implementation

Steven D'Aprano steve at pearwood.info
Wed May 1 09:05:36 CEST 2013


On Tue, Apr 30, 2013 at 09:19:49PM -0700, Ethan Furman wrote:
> Latest code available at https://bitbucket.org/stoneleaf/aenum.
> 
> --> class Color(Enum):
> ...     red = 1
> ...     green = 2
> ...     blue = 3

Ethan, you seem to be writing a completely new PEP in opposition to 
Barry's PEP 435. But your implementation doesn't seem to match what your 
proto-PEP claims.

Your proto-PEP (file enum.txt) says:

``Enum` - a valueless, unordered type.  It's related integer value is merely to
    allow for database storage and selection from the enumerated class. An
    ``Enum`` will not compare equal with its integer value, but can compare equal
    to other enums of which it is a subclass.


but:


py> import aenum
py> class Color(aenum.Enum):
...     red = 1
... 
py> Color.red == 1
True
py> type(Color.red) is int
True


So the implemented behaviour is completely different from the documented 
behaviour. What gives?

Given the vast number of words written about enum values being instances 
of the enum class, I'm surprised that your proto-PEP doesn't seem to 
mention one word about that. All it says is that enum values are 
singletons. (Unless I've missed something.)



-- 
Steven


More information about the Python-Dev mailing list