Que sont les types d'énumération Python ? Une brève introduction aux types d'énumération Python

不言
Libérer: 2018-10-10 16:07:50
avant
2092 Les gens l'ont consulté

Cet article vous explique qu'est-ce que le type d'énumération Python ? Une brève introduction aux types d'énumération Python a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'elle vous sera utile.

Un : Définition du type d'énumération
Deux : La différence entre la classe d'énumération et la classe ordinaire
1 : La valeur est immuable
2 : Elle a pour fonction d'empêcher la même balise et la valeur des différentes balises Cela peut être pareil !

Trois : Type d'énumération, valeur d'énumération, nom d'énumération
1 : VIP.YELLOW.Value Obtenez la valeur de la balise
2 : VIP.BLACK.name Obtenez le nom de la balise
3 : Les parties de l'énumération sont des types d'énumération !

Quatre : Comparaison entre les énumérations
1 : Prend en charge la comparaison d'égalité et est, ne prend pas en charge la comparaison de taille
2 : Comparaison entre différentes classes d'énumération

Cinq : Notes sur l'énumération
Lorsque les valeurs des différentes balises sont les mêmes, la seconde sera utilisée comme alias et sera écrasée lors de son appel !
ne sera pas imprimé lors du parcours. La solution est :

for v in VIP.__members__.items():
        print(v)
Copier après la connexion

Six : Conversion d'énumération
Supprimez la valeur correspondant à une certaine valeur de la base de données (a = 1 ), faire correspondre le type de l'énumération en fonction de la valeur d'un

a = 1
print(VIP(a))
Copier après la connexion

Sept : Autres
1 : Description du type IntEnum : Les énumérations sont toutes de type int !
2 : Limiter les valeurs des types d'énumération pour qu'elles ne soient pas les mêmes

# ----------------------------------------------#
# 定义一个枚举类型
# ----------------------------------------------#
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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!