@@ -171,9 +171,11 @@ def __new__(metacls, cls, bases, classdict):
171171 enum_class ._member_map_ = OrderedDict () # name->value map
172172 enum_class ._member_type_ = member_type
173173
174- # save attributes from super classes so we know if we can take
175- # the shortcut of storing members in the class dict
176- base_attributes = {a for b in enum_class .mro () for a in b .__dict__ }
174+ # save DynamicClassAttribute attributes from super classes so we know
175+ # if we can take the shortcut of storing members in the class dict
176+ dynamic_attributes = {k for c in enum_class .mro ()
177+ for k , v in c .__dict__ .items ()
178+ if isinstance (v , DynamicClassAttribute )}
177179
178180 # Reverse value->name map for hashable values.
179181 enum_class ._value2member_map_ = {}
@@ -233,7 +235,7 @@ def __new__(metacls, cls, bases, classdict):
233235 enum_class ._member_names_ .append (member_name )
234236 # performance boost for any member that would not shadow
235237 # a DynamicClassAttribute
236- if member_name not in base_attributes :
238+ if member_name not in dynamic_attributes :
237239 setattr (enum_class , member_name , enum_member )
238240 # now add to _member_map_
239241 enum_class ._member_map_ [member_name ] = enum_member
0 commit comments