Heim >Backend-Entwicklung >Python-Tutorial >Definition und Funktion der Python-Aufzählungsklasse (Beispielanalyse)

Definition und Funktion der Python-Aufzählungsklasse (Beispielanalyse)

乌拉乌拉~
乌拉乌拉~Original
2018-08-23 13:37:593740Durchsuche

Im folgenden Artikel erfahren wir, was eine Aufzählungsklasse in Python ist. Erfahren Sie, was die Python-Enumerationsklasse ist und welche Rolle die Python-Enumerationsklasse bei der Python-Programmierung spielen kann.

Definition der Aufzählung

Um eine Aufzählung zu definieren, importieren Sie zunächst das Aufzählungsmodul.
Die Aufzählungsdefinition verwendet das Schlüsselwort class und erbt die Enum-Klasse.

Hinweis:

Beim Definieren einer Aufzählung dürfen Mitgliedsnamen nicht wiederholt werden.

Standardmäßig dürfen verschiedene Mitgliedswerte gleich sein. Aber für zwei Mitglieder mit demselben Wert wird der Name des zweiten Mitglieds als Alias ​​des ersten Mitglieds betrachtet

Wenn es Mitglieder mit demselben Wert in der Aufzählung gibt, wird beim Abrufen des Aufzählungsmitglieds nach Wert Folgendes angezeigt: Sie können nur das erste Mitglied abrufen

Wenn Sie die Definition einer Aufzählung einschränken möchten, können Sie keine Mitglieder mit demselben Wert definieren. Sie können den Dekorator @unique verwenden [um das Unique-Modul zu importieren]

Wenn wir Konstanten definieren müssen, besteht eine Möglichkeit darin, Variablen in Großbuchstaben zu verwenden, um sie mit ganzen Zahlen zu definieren, z. B. Monat:

JAN = 1
FEB = 2
MAR = 3
...
NOV = 11
DEC = 12

Der Vorteil ist die Einfachheit, der Nachteil ist, dass der Typ int ist und es immer noch eine Variable ist.

Ein besserer Ansatz besteht darin, einen Klassentyp für einen solchen Aufzählungstyp zu definieren, und dann ist jede Konstante eine eindeutige Instanz der Klasse. Python stellt die Enum-Klasse zur Verfügung, um diese Funktion zu implementieren:

from enum import Enum
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))

Auf diese Weise erhalten wir die Aufzählungsklasse vom Typ Month. Wir können Month.Jan direkt verwenden, um auf eine Konstante zu verweisen oder alle ihre Mitglieder aufzuzählen:

for name, member in Month.__members__.items():
    print(name, '=>', member, ',', member.value)

Das Wertattribut ist eine int-Konstante, die dem Mitglied automatisch zugewiesen wird und standardmäßig von 1 an zählt.

Wenn Sie eine genauere Kontrolle über den Aufzählungstyp benötigen, können Sie eine benutzerdefinierte Klasse von Enum ableiten:

from enum import Enum, unique

@unique
class Weekday(Enum):
    Sun = 0 # Sun的value被设定为0
    Mon = 1
    Tue = 2
    Wed = 3
    Thu = 4
    Fri = 5
    Sat = 6

Der @unique-Dekorator kann uns dabei helfen, sicherzustellen, dass keine doppelten Werte vorhanden sind.

Es gibt mehrere Möglichkeiten, auf diese Aufzählungstypen zuzugreifen:

>>> day1 = Weekday.Mon
>>> print(day1)
Weekday.Mon
>>> print(Weekday.Tue)
Weekday.Tue
>>> print(Weekday['Tue'])
Weekday.Tue
>>> print(Weekday.Tue.value)
2
>>> print(day1 == Weekday.Mon)
True
>>> print(day1 == Weekday.Tue)
False
>>> print(Weekday(1))
Weekday.Mon
>>> print(day1 == Weekday(1))
True
>>> Weekday(7)
Traceback (most recent call last):
  ...
ValueError: 7 is not a valid Weekday
>>> for name, member in Weekday.__members__.items():
...     print(name, '=>', member)
...
Sun => Weekday.Sun
Mon => Weekday.Mon
Tue => Weekday.Tue
Wed => Weekday.Wed
Thu => Weekday.Thu
Fri => Weekday.Fri
Sat => Weekday.Sat

Es ist ersichtlich, dass die Aufzählungskonstante über den Mitgliedsnamen referenziert werden kann oder die Aufzählungskonstante direkt basierend auf dem erhalten werden kann Wert des Wertes.

Das Obige ist der gesamte Inhalt dieses Artikels. In diesem Artikel werden hauptsächlich die relevanten Kenntnisse der Python-Aufzählungsklasse vorgestellt. Ich hoffe, dass das, was ich in diesem Artikel beschrieben habe, für Sie hilfreich ist und Ihnen das Erlernen von Python erleichtert.

Weitere Informationen zu diesem Thema finden Sie in der Spalte Python-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonDefinition und Funktion der Python-Aufzählungsklasse (Beispielanalyse). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn