On Apr 12, 2013, at 09:03 AM, Michael Urman wrote: >> You also may not duplicate values in derived enumerations:: >> >> >>> class BadColors(Colors): >> ... yellow = 4 >> ... chartreuse = 2 # Oops! >> Traceback (most recent call last): >> ... >> ValueError: Conflicting enums with value '2': 'green' and 'chartreuse' >> > >Is there a convenient way to change this behavior, namely to indicate that >conflicts are acceptable in a given Enum? While I like the idea of catching >mistaken collisions, I've seen far too many C/C++ scenarios where multiple >names map to the same value. This does raise questions, as it's unclear >whether each name should get its own representation, or whether it's better >to let DupEnum.name1 is DupEnum.name2 be True.
Currently there is not. This behavior is defined in the metaclass. >(For the latter behavior, would adding DupEnum.name2 = DupEnum.name1 after >the class declaration work today?) Yes, but the repr/str of the alias will show the original value. >>> from flufl.enum import Enum >>> Colors = Enum('Colors', 'red green blue') >>> Colors.black = Colors.blue >>> Colors.black <EnumValue: Colors.blue [value=3]> >>> Colors.black is Colors.blue True -Barry _______________________________________________ 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