[resending to lists -- sorry, Greg]
On 01/15/2016 12:36 PM, Greg Ewing wrote:
Ethan Furman wrote:
So the question now is: for a standard Enum (meaning no other type besides Enum is involved) should __bool__ look to the value of the Enum member to determine True/False, or should we always be True by default and make the Enum creator add their own __bool__ if they want something different?
Can't you just specify a starting value of 0 if you want the enum to have a false value? That doesn't seem too onerous to me.
You can start with zero, but unless the Enum is mixed with a numeric type it will evaluate to True.
Also, but there are other falsey values that a pure Enum member could have: False, None, '', etc., to name a few.
However, as Barry said, writing your own is a whopping two lines of code:
def __bool__(self): return bool(self._value_)
With Barry and Guido's feedback this issue is closed.