diff -r 7d38784092d8 Lib/enum.py --- a/Lib/enum.py Wed Sep 11 22:48:52 2013 +0300 +++ b/Lib/enum.py Thu Sep 12 10:11:53 2013 +0800 @@ -257,6 +257,9 @@ def __iter__(cls): return (cls._member_map_[name] for name in cls._member_names_) + def __reversed__(cls): + return (cls._member_map_[name] for name in reversed(cls._member_names_)) + def __len__(cls): return len(cls._member_names_) diff -r 7d38784092d8 Lib/test/test_enum.py --- a/Lib/test/test_enum.py Wed Sep 11 22:48:52 2013 +0300 +++ b/Lib/test/test_enum.py Thu Sep 12 10:11:53 2013 +0800 @@ -1019,6 +1019,13 @@ blue = 3 grene = 2 + def test_reversed(self): + self.assertEqual( + list(reversed(self.Season)), + [self.Season.WINTER, self.Season.AUTUMN, self.Season.SUMMER, + self.Season.SPRING] + ) + def test_init(self): class Planet(Enum): MERCURY = (3.303e+23, 2.4397e6)