python中的枚举的定义_python枚举类型是什么?python枚举类型的简单介绍

本篇文章给大家带来的内容是关于python枚举类型是什么?python枚举类型的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一:枚举类型的定义

二:枚举类和普通类的区别

1:值不可变

2:具有防止相同标签得功能,不同标签的值可以相同!

三:枚举类型、枚举值、枚举名称

1:VIP.YELLOW.Value 获得标签的值

2:VIP.BLACK.name 获取标签名称

3:枚举里面的部分为枚举类型!

四:枚举之间的比较

1: 支持等值比较和is, 不支持大小比较

2: 不同枚举类之间的比较

五:枚举的注意事项

不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!

遍历的时候不会被打印出来,解决方法是:for v in VIP.__members__.items():

print(v)

六:枚举转换

从数据库中去除某一个数值对应的值(a = 1),根据a的值匹配枚举的类型a = 1

print(VIP(a))

七:其他

1:IntEnum类型说明:枚举的都是int类型的!

2:限制枚举类型的值不能一样# ----------------------------------------------#

# 定义一个枚举类型

# ----------------------------------------------#

from enum import Enum

from enum import IntEnum, unique

class VIP(Enum):

YELLOW = 1

GREEN = 2

BLACK = 3

RED = 4

class Common:

YELLOW = 2

# 注意这里显示的是VIP.Black而不是3,枚举的意义重在标签而不是标签的值

print(VIP.BLACK)

# ----------------------------------------------------#

# 枚举类和普通类的区别

# 字典和普通类封装数据: 1:可变 2:没有防止相同标签得功能

# ----------------------------------------------------#

# VIP.GREEN = 6 # 当改变值得时候报错

Common.YELLOW = 9 # 改变类变量的值

print(Common.YELLOW)

x = Common() # 类的实例化

print(x.YELLOW)

# ----------------------------------------------#

# 枚举类型、枚举值、枚举名称

# ----------------------------------------------#

print("Black = ", VIP.BLACK.value) # get value of Enum

print("name = ", VIP.BLACK.name) # get value of Name,the type of name is str

print(VIP.BLACK) # 名字为枚举类型

print(VIP['BLACK'])

# 枚举可以被遍历

for v in VIP:

print(v)

# ----------------------------------------------#

# 枚举之间的比较,支持等值比较,不支持大小比较

# ----------------------------------------------#

result1 = VIP.GREEN == VIP.BLACK

result2 = VIP.GREEN.value == 2 # 注意这里的结果

print(result1, result2)

class VIP1(Enum):

YELLOW = 1

GREEN = 2

BLACK = 3

RED = 4

WRITE = 5

result3 = VIP.GREEN == VIP1.GREEN

print(result3)

# ----------------------------------------------#

# 枚举注意事项

# ----------------------------------------------#

class VIP2(Enum):

YELLOW = 1

GREEN = 1 # 别名

BLACK = 3

RED = 4

for v in VIP2:

print(v)

for v in VIP2.__members__.items():

print(v)

for v in VIP2.__members__:

print(v)

# ----------------------------------------------#

# 枚举转换

# ----------------------------------------------#

a = 1

print(VIP(a)) # 可以看做是类型转换

# ----------------------------------------------#

# 枚举补充

# ----------------------------------------------#

# 1:IntEnum类型说明

class VIP3(Enum):

YELLOW = 1

GREEN = "str" # 别名

BLACK = 3

RED = 4

class VIP4(IntEnum):

YELLOW = 1

# GREEN = 'str' # 字符串报错

BLACK = 3

RED = 4

# 2:限制枚举类型的值不能一样

@unique

class VIP6(Enum):

YELLOW = 1

GREEN = 1 # 当值相同的时候会报错!

BLACK = 3

RED = 4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值