在这里,括号的内容表示超类。
class Tag(enum.Enum):
a = 1
b = 2
if __name__ == '__main__":
print(Tag.a)
输出如下:
Tag.a
将“ Tag.a”替换为“ Tag.a.value”后,得到的输出如下:
1
为什么类变量的类型是超类的类型?我听不懂代码。请尽可能明确地解释结果。
答案 0 :(得分:3)
The docs很好:
enum —对枚举的支持3.4版中的新功能。
源代码:Lib / enum.py
枚举是一组绑定到唯一的符号名称(成员), 常数值。在枚举中,可以通过以下方式比较成员 身份,并且枚举本身可以被迭代。
[...]
创建枚举使用类语法创建枚举, 这使得它们易于读写。另一种创作 方法在Functional API中进行了描述。要定义一个枚举, 子类Enum如下:
>>> >>> from enum import Enum >>> class Color(Enum): ... RED = 1 ... GREEN = 2 ... BLUE = 3 ...
注意Enum成员值成员值可以是任何值:int,str等。 如果确切值不重要,则可以使用自动实例和 将会为您选择适当的值。如果您要小心 将auto与其他值混合。
注意命名法Color类是一个枚举(或枚举)
Color.RED,Color.GREEN等属性是枚举成员 (或枚举成员),并且是功能常数。
枚举成员具有名称和值(Color.RED的名称为RED, Color.BLUE的值是3,依此类推。)
注意即使我们使用类语法来创建枚举,但枚举仍然是 不是普通的Python类。有关更多信息,请参见How are Enums different? 细节。 枚举成员具有易于理解的字符串表示形式:
>>> >>> print(Color.RED) Color.RED