python的 enum.Enum中的name属性是怎么实现的
时间: 2024-06-10 08:09:48 浏览: 125
一文读懂Python 枚举
在 Python 的 Enum 中,每个成员(member)都是一个枚举对象(enum object),这个对象有一个 name 属性,用来表示枚举成员的名称。
这个 name 属性是通过在 Enum 的元类(metaclass)中实现的。元类会遍历枚举类中的成员,并将它们作为属性添加到枚举类中。在添加属性的过程中,元类会将成员的名称保存在一个字典中,其中键是名称字符串,值是成员对象。这个字典就是枚举类的 __members__ 属性。
当访问枚举成员的 name 属性时,实际上是在访问这个成员对象在 __members__ 字典中的键值。因此,name 属性的实现就是在成员对象中保存了一个字符串,这个字符串是成员的名称,在访问 name 属性时返回这个字符串。
阅读全文