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