Neu in Python 3.4.0 (2) --enum

Einführung neuer Funktionen von Python 3.4, die mit [Eintrag von gestern] begonnen haben (http://qiita.com/ksato9700/items/9e299f2bbd13cbcc0da8). Heute ist Enum.

Dies ist eine Funktion, die ich mir schon immer gewünscht habe, daher bin ich damit zufrieden. Im Fall von Python ist Enum eher eine Klasse als ein Typ und ein Bild, das als Klassenvariable einer Klasse definiert ist, die ein Name / Wert-Paar erbt.

Verwenden Sie als Beispiel den in Aufzählung (Wikipedia) enthaltenen Cardsuit. .. Zuerst aus der Definition.

from enum import Enum

class Cardsuit(Enum):
    CLUBS = 1
    DIAMONDS = 2
    HEARTS = 3
    SPADES = 4

Wenn Sie es verwenden, instanziieren Sie entweder den Wert als Argument oder rufen Sie das Klassenattribut mit dem Namen als Schlüssel ab.

#Allen folgenden wird der gleiche Wert zugewiesen
card0 = Cardsuit(2)
card1 = Cardsuit['DIAMONDS']
card2 = Cardsuit.DIAMONDS

#Bei normalem Druck wird es im endgültigen Format ausgegeben
print(card0, card1, card2) # -> Cardsuit.DIAMONDS Cardsuit.DIAMONDS Cardsuit.DIAMONDS

#Name und Wert können separat abgerufen werden
print(card0.name, card0.value) # -> DIAMONDS 2

Darüber hinaus ist Enum of Python

Wenn Sie jedoch Enum.unique verwenden, können Sie auch die zweite NG verwenden.

from enum import Enum

#Das ist in Ordnung
class Cardsuit(Enum):
    CLUBS = 1
    DIAMONDS = 2
    HEARTS = 3
    SPADES = 4
    ALT_SPADES = 4

#Das ist NG
@unique
class Cardsuit(Enum):
    CLUBS = 1
    DIAMONDS = 2
    HEARTS = 3
    SPADES = 4
    ALT_SPADES = 4

Ich war ein wenig überrascht, dass Enum eine Klasse war, aber es kann sein. Sie können beispielsweise einen Fehlercode als Name / Wert-Paar definieren und nach Bedarf Methoden hinzufügen. Ich frage mich, ob es klarer wird, wenn ich etwas aktueller codiere.

Recommended Posts

Neu in Python 3.4.0 (2) --enum
Was ist neu in Python 3.5?
Was ist neu in Python 3.6?
Was ist neu in Python 3.10 (Zusammenfassung)
Was ist neu in Python 3.9 (Zusammenfassung)
Neu in Python3.9 Wörterbücher zusammenführen
Neu in Python 3.4.0 (1) --pathlib
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Was ist neu in Python 3.9 (2) -Sortierte nicht verteilte Diagramme in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Python: Synthetische Aufzählung
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Was in datetime neu ist, ist in Python 3 etwas nützlicher
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Dateioperationen in Python