Rustom Mody wrote: > On Friday, January 23, 2015 at 10:22:06 PM UTC+5:30, Ian wrote: >> On Fri, Jan 23, 2015 at 8:31 AM, Rustom Mody wrote: >> > Can you tell me what of the following code does not satisfy your >> > requirements? >> > [Needs python 3.4] >> > >> > >> >>>> from enum import IntEnum >> >>>> class B4(IntEnum): >> > F1 = 0 >> > F2 = 0 >> > F3 = 0 >> > T = 1 >> >> This strikes me as a potential problem: >> >> >>> B4.F1 is B4.F2 is B4.F3 >> True >> >>> list(B4) >> [<B4.F1: 0>, <B4.T: 1>] >> >> Enum members with the same values are just aliases for one another, >> not distinct entities. > > Yeah.... > > The only workaround I have been able to come up with is: > > class B4(IntEnum): >> F1 = 0 >> F2 = "" >> F3 = None >> T = 1 > > which is not bad; its ridiculous > [Like going around with a broken broom searching for falsey objects :-) ]
It certainly is. But fortunately it is not necessary. # Untested class B4(IntEnum): F1 = 0 F2 = 1 F3 = 2 T = 3 def __bool__(self): return self is B4.T def __str__(self): if self is B4.F1: return "Certainly False" if self is B4.F2: return "Maybe False" if self is B4.F3: return "Maybe True" if self is B4.T: return "Certainly True" -- Steven -- https://mail.python.org/mailman/listinfo/python-list