Heim >Backend-Entwicklung >Python-Tutorial >Was sind Python-Aufzählungstypen? Eine kurze Einführung in Python-Aufzählungstypen

Was sind Python-Aufzählungstypen? Eine kurze Einführung in Python-Aufzählungstypen

不言
不言nach vorne
2018-10-10 16:07:502187Durchsuche

In diesem Artikel erfahren Sie, was der Python-Aufzählungstyp ist. Eine kurze Einführung in Python-Aufzählungstypen hat einen gewissen Referenzwert. Ich hoffe, dass sie für Sie hilfreich ist.

Eins: Definition des Aufzählungstyps
Zwei: Der Unterschied zwischen Aufzählungsklasse und gewöhnlicher Klasse
1: Der Wert ist unveränderlich
2: Es hat die Funktion, das gleiche Tag und das zu verhindern Wert verschiedener Tags Es kann derselbe sein!

Drei: Aufzählungstyp, Aufzählungswert, Aufzählungsname
1: VIP.YELLOW.Value Holen Sie sich den Wert des Tags
2: VIP.BLACK.name Holen Sie sich den Tag-Namen
3 : Die Teile in der Aufzählung sind Aufzählungstypen!

Viertens: Vergleich zwischen Aufzählungen
1: Unterstützt Gleichheitsvergleiche und unterstützt keinen Größenvergleich
2: Vergleich zwischen verschiedenen Aufzählungsklassen

Fünf: Hinweise zur Aufzählung
Wenn die Werte verschiedener Tags gleich sind, wird das zweite als Alias ​​​​verwendet und beim Aufruf überschrieben!
Beim Durchlaufen wird es nicht gedruckt. Die Lösung lautet:

for v in VIP.__members__.items():
        print(v)

Sechs: Aufzählungskonvertierung
Entfernen Sie den Wert, der einem bestimmten Wert entspricht, aus der Datenbank (a = 1), Match der Typ der Aufzählung entsprechend dem Wert von a

a = 1
print(VIP(a))

Sieben: Andere
1: IntEnum-Typbeschreibung: Alle Aufzählungen sind vom Typ int!
2: Beschränken Sie die Werte der Aufzählungstypen auf unterschiedliche Werte

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

Das obige ist der detaillierte Inhalt vonWas sind Python-Aufzählungstypen? Eine kurze Einführung in Python-Aufzählungstypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen