[Python-ideas] PEP for enum library type?
Tim Delaney
timothy.c.delaney at gmail.com
Wed Feb 13 02:45:24 CET 2013
On 13 February 2013 07:13, Tim Delaney <timothy.c.delaney at gmail.com> wrote:
> Well, that particular case would work (you'd get a NameError: sys) due to
> having done an attribute lookup on sys, but the following:
>
> class Color(Enum):
> RED, GREEN, BLUE
> if platfor == 'win32':
> MAGENTA
>
> would create an enum value 'platfor'.
>
BTW, I've just addressed this in my latest version up on BitBucket. Any
usage of an object that is more than just assignment (basically, anything
that results in a call of a __dunder__ method on the object) will now mark
the name as not an enum value and result in a NameError for an unknown name.
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64
bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from enum import Enum
>>> class Color(Enum):
... RED
... if unknown_name == 'value':
... PINK
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in Color
File ".\enum.py", line 123, in __eq__
def __eq__(self, other): return self._get(True) == other
File ".\enum.py", line 98, in _get
raise NameError(self.key)
NameError: unknown_name
Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130213/4445079a/attachment.html>
More information about the Python-ideas
mailing list