Enums: making a single enum

Chris Angelico rosuav at gmail.com
Sat May 26 01:11:48 EDT 2018


On Sat, May 26, 2018 at 3:07 PM, Ian Kelly <ian.g.kelly at gmail.com> wrote:
> On Fri, May 25, 2018 at 11:00 PM, Chris Angelico <rosuav at gmail.com> wrote:
>> On Sat, May 26, 2018 at 2:46 PM, Steven D'Aprano
>> <steve+comp.lang.python at pearwood.info> wrote:
>>> Am I silly for wanting to make a single enum?
>>>
>>> I have a three-state flag, True, False or Maybe. Is is confusing or bad
>>> practice to make a single enum for the Maybe case?
>>>
>>>
>>> from enum import Enum
>>> class State(Enum):
>>>     Maybe = 2
>>>
>>> Maybe = State.Maybe
>>> del State
>>>
>>> Is there a better way of handling a three-state flag like this?
>>>
>>
>> Does it need to have a value of 2? If not:
>>
>> # Tri-state logic
>> Maybe = object()
>
> The enum has a nice __str__ though.

Ah, good point. Then sure, go with the enum - but have a comment or
docstring explaining that this is augmented with the literals True and
False.

ChrisA



More information about the Python-list mailing list