On 7 May 2013 12:29, Ethan Furman <et...@stoneleaf.us> wrote:

> On 05/05/2013 02:55 PM, Tim Delaney wrote:
>
>>
>> So long as I can get one of the requirements documented to implement an
>> auto-number syntax I'll be happy enough with
>> stdlib enums I think.
>>
>> class Color(AutoIntEnum):
>>      red = ...
>>      green = ...
>>      blue = ...
>>
>>
> Will this do?
>
>     class AutoNumber(Enum):
>         def __new__(cls):
>             value = len(cls.__enum_info__) + 1
>             obj = object.__new__(cls)
>             obj._value = value
>             return obj
>         def __int__(self):
>             return self._value
>     class Color(AutoNumber):
>         red = ()
>         green = ()
>         blue = ()


Considering that doesn't actually work with the reference implementation
(AutoNumber.__new__ is never called) ... no.

print(Color.red._value)
print(int(Color.red))

---------- Run Python3 ----------
()
Traceback (most recent call last):
  File "D:\home\repos\mercurial\ref435\ref435.py", line 292, in <module>
    print(int(Color.red))
TypeError: __int__ returned non-int (type tuple)

Plus I would not want to use the empty tuple for the purpose - at least ...
implies something ongoing.

Tim Delaney
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to