--- enum.py 2018-05-07 11:22:26.839011452 +0200 +++ my_enum.py 2018-05-07 11:22:50.607255624 +0200 @@ -218,10 +218,10 @@ enum_member._value_ = value else: enum_member._value_ = member_type(*args) - value = enum_member._value_ enum_member._name_ = member_name enum_member.__objclass__ = enum_class enum_member.__init__(*args) + value = enum_member._value_ # If another member with the same value was already defined, the # new member becomes an alias to the existing one. for name, canonical_member in enum_class._member_map_.items():