Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #45236 > unrolled thread

Re: Python's sad, unimaginative Enum

Started byJean-Michel Pichavant <jeanmichel@sequans.com>
First post2013-05-13 13:00 +0200
Last post2013-05-14 02:00 +0000
Articles 2 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  Re: Python's sad, unimaginative Enum Jean-Michel Pichavant <jeanmichel@sequans.com> - 2013-05-13 13:00 +0200
    Re: Python's sad, unimaginative Enum Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-05-14 02:00 +0000

#45236 — Re: Python's sad, unimaginative Enum

FromJean-Michel Pichavant <jeanmichel@sequans.com>
Date2013-05-13 13:00 +0200
SubjectRe: Python's sad, unimaginative Enum
Message-ID<mailman.1621.1368442906.3114.python-list@python.org>
----- Original Message -----
> That's the title of this little beast
> http://www.acooke.org/cute/Pythonssad0.html if anybody's interested.
> 
> --
> If you're using GoogleCrap™ please read this
> http://wiki.python.org/moin/GoogleGroupsPython.
> 
> Mark Lawrence
> 
> --
> http://mail.python.org/mailman/listinfo/python-list
> 

python 2.5

class Enum:
  class __metaclass__(type):
    def __iter__(self):
      for attr in sorted(dir(self)):
        if not attr.startswith("__"):
          yield getattr(self, attr)

class Colours(Enum):
  RED = "red"
  GREEN = "green"

for c in Colours:
  print c

green
red


JM


-- IMPORTANT NOTICE: 

The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

[toc] | [next] | [standalone]


#45277

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2013-05-14 02:00 +0000
Message-ID<51919aad$0$29997$c3e8da3$5496439d@news.astraweb.com>
In reply to#45236
On Mon, 13 May 2013 13:00:36 +0200, Jean-Michel Pichavant wrote:

> ----- Original Message -----
>> That's the title of this little beast
>> http://www.acooke.org/cute/Pythonssad0.html if anybody's interested.
>> 
>> --
>> If you're using GoogleCrap™ please read this
>> http://wiki.python.org/moin/GoogleGroupsPython.
>> 
>> Mark Lawrence
>> 
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>> 
>> 
> python 2.5
> 
> class Enum:
>   class __metaclass__(type):
>     def __iter__(self):
>       for attr in sorted(dir(self)):
>         if not attr.startswith("__"):
>           yield getattr(self, attr)
> 
> class Colours(Enum):
>   RED = "red"
>   GREEN = "green"

py> class Experience(Enum):
...     NOVICE = 'novice'
...     GREEN = 'green'
...     EXPERIENCED = 'experienced'
...     MASTER = 'master'
...
py>
py> Colours.GREEN == Experience.GREEN
True


Oops.


It's very easy to make something which does a few things that enums 
should do, and call it an Enum. It's much harder to do a lot of things 
that enums should do.



-- 
Steven

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web