What are python enumeration types? A brief introduction to python enumeration types

不言
Release: 2018-10-10 16:07:50
forward
2091 people have browsed it

This article brings you what is the Python enumeration type? A brief introduction to python enumeration types has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

1: Definition of enumeration type
2: The difference between enumeration classes and ordinary classes
1: Values ​​are immutable
2: It has the function of preventing the same label from changing the value of different labels It can be the same!

Three: Enumeration type, enumeration value, enumeration name
1: VIP.YELLOW.Value Get the value of the tag
2: VIP.BLACK.name Get the tag name
3 : The parts in the enumeration are enumeration types!

Four: Comparison between enumerations
1: Supports equality comparison and is, does not support size comparison
2: Comparison between different enumeration classes

5 : Notes on enumeration
When the values ​​of different tags are the same, the second one will be used as an alias and will be overwritten when called!
It will not be printed when traversing. The solution is:

for v in VIP.__members__.items():
        print(v)
Copy after login

6: Enumeration conversion
Remove the value corresponding to a certain value from the database (a = 1), Match the type of the enumeration based on the value of a

a = 1
print(VIP(a))
Copy after login

Seven: Others
1: IntEnum type description: The enumerations are all of int type!
2: Limit the values ​​of enumeration types to not be the same

# ----------------------------------------------#
# 定义一个枚举类型
# ----------------------------------------------#
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
Copy after login

The above is the detailed content of What are python enumeration types? A brief introduction to python enumeration types. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!