On 01/09/2017 08:43 PM, Steven D'Aprano wrote:

Is it silly to create an enumeration with only a single member? That is, a
singleton enum?

from enum import Enum

class Unique(Enum):
     FOO = auto()


The reason I ask is that I have two functions that take an enum argument. The
first takes one of three enums:

class MarxBros(Enum):
     GROUCHO = 1
     CHICO = 2
     HARPO = 3

and the second takes *either* one of those three, or a fourth distinct value.
So in my two functions, I have something like this:


def spam(arg):
     if isinstance(arg, MarxBros):
         ...


def ham(arg):
     if isinstance(arg, MarxBros) or arg is Unique.FOO:
         ...


Good, bad or indifferent?

Well, the basic purpose of Enum is give meaningful names to otherwise magic 
constants, so while it certainly looks a bit unusual to have only one item in 
the enumeration, if that group naturally has only one item then sure, go for it!

--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to