在实际编程历程中如果想制止发生这种情况可以借助 @unique 装饰器这样当枚举类中泛起相同值的成员时法式会报 ValueError 错误。例如:
值得一提的是Python 枚举类中各个成员必须保证 name 互不相同但 value 可以相同举个例子:
Enum() 函数可接受 2 个参数第一个用于指定枚举类的类名第二个参数用于指定枚举类中的多个成员。
除了通过继续 Enum 类的方法建立枚举类还可以使用 Enum() 函数建立枚举类。
例如:
针对这种特殊的类Python 3.4 中新增加了 Enum 枚举类。也就是说对于这些实例化工具个数牢固的类可以用枚举类来界说。
枚举类成员之间不能比力打下但可以用 == 或者 is 举行比力是否相等例如:
除此之外该枚举类还提供了一个 __ members __ 属性该属性是一个包罗枚举类中所有成员的字典通过遍历该属性也可以会见枚举类中的各个成员。
例如:
如上所示仅通过一行代码即建立了一个和前面的 Color 类相同的枚举类。运行法式其输出效果为:
需要注意的是枚举类中各个成员的值不能在类的外部做任何修改也就是说下面语法的做法是错误的:
法式输出效果为:
输出效果为:
和普通类的用法差别枚举类不能用来实例化工具但这并不故障我们会见枚举类中的成员。会见枚举类成员的方式有多种例如以 Color 枚举类为例在其基础上添加如下代码:
可以看到Color 枚举类中 red 和 green 具有相同的值(都是 1)Python 允许这种情况的发生它会将 green 当做是 red 的别名因此当会见 green 成员时最终输出的是 red。
在 Color 枚举类中red、green、blue 都是该类的成员(可以明白为是类变量)。注意枚举类的每个成员都由 2 部门组成划分为 name 和 value其中 name 属性值为该枚举值的变量名(如 red)value 代表该枚举值的序号(序号通常从 1 开始)。
运行法式会报错:
如果想将一个类界说为枚举类只需要令其继续自 enum 模块中的 Enum 类即可。
例如在上面法式中Color 类继续自 Enum 类则证明这是一个枚举类。
例如下面法式演示了如何界说一个枚举类:
一些具有特殊寄义的类其实例化工具的个数往往是牢固的好比用一个类表现月份则该类的实例工具最多有 12 个;再好比用一个类表现季节则该类的实例化工具最多有 4 个。
本文来源:金年会金字招牌-www.bdxqsyjx.com
多建在城郊或风景区,中国古代称别业、别馆,3 世纪,意大利山坡地带出现台阶式别墅。中国西晋出现别墅,如洛阳石崇的金谷别墅。此外,历代著名的...
多建在城郊或风景区,中国古代称别业、别馆,3 世纪,意大利山坡地带出现台阶式别墅。中国西晋出现别墅,如洛阳石崇的金谷别墅。此外,历代著名的...
多建在城郊或风景区,中国古代称别业、别馆,3 世纪,意大利山坡地带出现台阶式别墅。中国西晋出现别墅,如洛阳石崇的金谷别墅。此外,历代著名的...
多建在城郊或风景区,中国古代称别业、别馆,3 世纪,意大利山坡地带出现台阶式别墅。中国西晋出现别墅,如洛阳石崇的金谷别墅。此外,历代著名的...
Copyright © 2005-2023 www.bdxqsyjx.com. 金年会金字招牌科技 版权所有 地址:江西省南昌市岳麓区蒂民大楼7544号 ICP备92119492号-5