Enum with only a single member

Peter Otten __peter__ at web.de
Tue Jan 10 04:52:26 EST 2017


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?

I don't see a problem. As it looks like you cannot subclass Enum subclasses 
alternative spellings might be
isintance(args, (MarxBros, Unique))
or
BOTH = set(MarxBros) | set(Unique)
arg in MarxBros
arg in BOTH


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /