diff --git a/Doc/howto/enum.rst b/Doc/howto/enum.rst index 4312b4c8140f5c..2a26b81fe875a3 100644 --- a/Doc/howto/enum.rst +++ b/Doc/howto/enum.rst @@ -1051,9 +1051,13 @@ class below, those methods will show up in a :func:`dir` of the member, but not of the class:: >>> dir(Planet) # doctest: +SKIP - ['EARTH', 'JUPITER', 'MARS', 'MERCURY', 'NEPTUNE', 'SATURN', 'URANUS', 'VENUS', '__class__', '__doc__', '__members__', '__module__'] + ['EARTH', 'JUPITER', 'MARS', 'MERCURY', 'NEPTUNE', 'SATURN', 'URANUS', 'VENUS', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__'] >>> dir(Planet.EARTH) # doctest: +SKIP - ['__class__', '__doc__', '__module__', 'mass', 'name', 'radius', 'surface_gravity', 'value'] + ['EARTH', 'JUPITER', 'MARS', 'MERCURY', 'NEPTUNE', 'SATURN', 'URANUS', 'VENUS', '__class__', '__doc__', '__eq__', '__hash__', '__module__', 'mass', 'name', 'radius', 'surface_gravity', 'value'] + +.. versionchanged:: 3.11 + Additional ``__dunder__`` names are returned for enums and enum members. + Calling :func:`dir` on an enum member also returns the other members. Combining members of ``Flag`` diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst index e9c4f0e2c5f59b..caf9fc3194b6c9 100644 --- a/Doc/library/enum.rst +++ b/Doc/library/enum.rst @@ -207,8 +207,8 @@ Data Types .. method:: EnumType.__dir__(cls) - Returns ``['__class__', '__doc__', '__members__', '__module__']`` and the - names of the members in *cls*:: + Returns the names of the members in *cls* and + ``['__class__', '__contains__', '__doc__', '__getitem__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__']``:: >>> dir(Color) ['BLUE', 'GREEN', 'RED', '__class__', '__contains__', '__doc__', '__getitem__', '__init_subclass__', '__iter__', '__len__', '__members__', '__module__', '__name__', '__qualname__'] @@ -278,8 +278,8 @@ Data Types .. method:: Enum.__dir__(self) - Returns ``['__class__', '__doc__', '__module__', 'name', 'value']`` and - any public methods defined on *self.__class__*:: + Returns the names of the enum members and any public methods defined on + *self.__class__*, as well as ``['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'value']``:: >>> from datetime import date >>> class Weekday(Enum): @@ -295,7 +295,10 @@ Data Types ... print('today is %s' % cls(date.today().isoweekday()).name) ... >>> dir(Weekday.SATURDAY) - ['__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value'] + ['FRIDAY', 'MONDAY', 'SATURDAY', 'SUNDAY', 'THURSDAY', 'TUESDAY', 'WEDNESDAY', '__class__', '__doc__', '__eq__', '__hash__', '__module__', 'name', 'today', 'value'] + + .. versionchanged:: 3.11 + '__eq__', '__hash__', and enum members are also returned. .. method:: Enum._generate_next_value_(name, start, count, last_values) diff --git a/Misc/ACKS b/Misc/ACKS index 8b8c5ad8434bd7..1624ded7a17449 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1562,6 +1562,7 @@ Liam Routt Todd Rovito Craig Rowland Clinton Roy +Ujan RoyBandyopadhyay Paul Rubin Sam Ruby Demur Rumed