温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python3枚举类怎么处理重复名称

发布时间:2020-11-17 09:20:19 来源:亿速云 阅读:236 作者:小新 栏目:编程语言

小编给大家分享一下Python3枚举类怎么处理重复名称,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

当存在枚举成员的名称有重复时,则后面的枚举成员相当于第一个枚举成员的别名,而且在实际使用中,就是使用的第一次出现的枚举成员。

class Shape(Enum):
    SQUARE = 2
    DIAMOND = 1
    CIRCLE = 3
ALIAS_FOR_SQUARE = 2

如下所示,ALIAS_FOR_SQUARE就是SQUARE的别名,就比如“星期日”和“星期天”都可以表示星期七一样,当遇到这种情况我们也可以这样用。

 如果尝试遍历枚举类型,则后面重复的不会被打印出来。但是,如果想要获取别名,我们可以使用属性“__members__”,它是一个OrderedDict,包括所有定义的枚举名称,包括别名。

for name, member in Shape.__members__.items():
print( name, member )

枚举类型默认可以对相同的值使用别名,但有时我们需要确保枚举类型不能重复,我们也有办法使每个枚举值只出现一次。我们可以引入装饰器“@unique”,它会遍历枚举成员,如果发现有重复就会立即抛出“ValueError”。

from enum import Enum, unique
@unique
class Mistake(Enum):
    ONE = 1
    TWO = 2
    THREE = 3
    FOUR = 3
 
Traceback (most recent call last):
ValueError: duplicate values found in <enum 'Mistake'>: FOUR -> THREE

以上是Python3枚举类怎么处理重复名称的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI