Python3枚举类型详解

补一下python基础知识,枚举类型的详解,以及python中枚举的方法。

首先我们需要知道什么叫枚举,以下我个人总结

枚举一般就是把一个集合中对象一个个列举出来

例如python中字典可以利用键值的关系枚举

enum1 = {
    "name":"yang.su",
    "pickname":"merci",
    "alias":"shevechco"
}
print(enum1['name'])

使用python类也可以进行枚举

class test_enum():
    name = "yang.su",
    pickname = "merci",
    alias = "shevechco"
print(test_enum.pickname)

上面的例子套用百度的原文来说有三个问题

一是枚举的变量可以被修改,这个使我们不想看到的

二是枚举的对象可以被实例化

三是枚举的类型有可能有重复

解决以上问题,我们可以使用python的Enum类来解决

我们导入Enum

class test_enum(Enum):
    name = "yang.su"
    pickname = "merci"
    alias = "shevechco"
    name = "test"

再执行调试发现报错

TIM截图20190106223254.jpg

我们使用unique也可以检测重复枚举名

@unique
class test_enum():
    name = "yang.su"
    pickname = "merci"
    alias = "shevechco"
    name = "test"

枚举成员包含了两个属性:name和value分别可以获取枚举成员名和枚举成员值

from enum import Enum,unique
class test_enum(Enum):
    name = "yang.su"
    pickname = "merci"
    alias = "shevechco"
print(test_enum.name.name)
print(test_enum.name.value)
print(test_enum("merci"))

我们也可以通过枚举成员值获取枚举成员名,上面打印结果如下

TIM截图20190106224340.jpg


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://sulao.cn/post/627.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。