Énumérer le code source
À partir de l'exemple ci-dessus, vous pouvez savoir que tous les membres de la classe d'énumération peuvent être parcourus via __members__. Alors pourquoi ?
Nous pouvons d'abord jeter un coup d'œil à la façon dont le code source d'Enum est implémenté ; métaclasse EnumMeta ; regardez à nouveau Regardez les extraits pertinents de EnumMeta
class Enum(metaclass=EnumMeta): """Generic enumeration. Derive from this class to define new enumerations. """
Tout d'abord, la méthode __members__ renvoie un MappingProxyType qui contient un Dict ou une Map, et via @property, la méthode d'accès de la méthode __members__(cls) est modifiée en la forme d'une variable, qui peut être transmise directement _ _les membres__ sont là pour une visite