Created on 2008-03-28 11:05 by calvin, last changed 2008-03-29 09:58 by rhettinger. This issue is now closed.
Named tuples can also be used to emulate enum datatypes. The patch adds
an example to the documentation.
The motivation for this patch is that documenting a single function
adding enum-like capabilities would hopefully eliminate the numerous
"enum" recipies already out there, each handling things a little different.
Fixed example (a * was missing) and committed as r62007. Thanks!
Raymond, is this kind of recipes worth adding to the 'collections' module?
Maybe with the following form:
def enum(*valuenames):
return namedtuple('Enum', valuenames)(*range(len(valuenames)))
Thanks for asking. This should not go into the collections module.
The concept makes more sense in statically compiled languages. In
Python, we typically write something like "RED, ORANGE, YELLOW = range
(3)" at the module level. That is faster and still allows prefixing
using the module name (for example, re.MULTILINE).