python枚举类型是什么?python枚举类型的简单介绍


本文摘自php中文网,作者不言,侵删。

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

一:枚举类型的定义
二:枚举类和普通类的区别
1:值不可变
2:具有防止相同标签得功能,不同标签的值可以相同!

三:枚举类型、枚举值、枚举名称
1:VIP.YELLOW.Value 获得标签的值
2:VIP.BLACK.name 获取标签名称
3:枚举里面的部分为枚举类型!

四:枚举之间的比较
1: 支持等值比较和is, 不支持大小比较
2: 不同枚举类之间的比较

五:枚举的注意事项
不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!
遍历的时候不会被打印出来,解决方法是:

1

2

for v in VIP.__members__.items():

        print(v)

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

1

2

a = 1

print(VIP(a))

七:其他
1:IntEnum类型说明:枚举的都是int类型的!
2:限制枚举类型的值不能一样

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

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

# 定义一个枚举类型

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

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

以上就是python枚举类型是什么?python枚举类型的简单介绍的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

什么是Python cgi编程?编程前需要做哪些准备?

Python如何做excel自动化

总结3种Python合并字符串方法

Python中sep是什么意思

Python多线程爬虫实战_爬取糗事百科段子的实例_Python

Python如何输入列表

Python如何处理表格?

2014 phpstudy openssl 0.9.8/1.0.1怎么切换

Python函数写斐波那契数列

Python64位和32位区别

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...