Sie möchten eine Konstante verwenden, wenn Sie einen Wert für eine bestimmte Sache haben möchten. Wenn ich mich mit Konstanten in Python befasse, denke ich persönlich, dass es besser ist, "Enum" (Aufzählungstyp) zu verwenden.
Korrekt. Es gibt keine strikte Konstante, da jeder Wert je nach Vorgehensweise überschrieben werden kann. Es ist jedoch in Official Document geschrieben.
from enum import Enum
class Hoge(Enum):
ONE = 1
TWO = 2
THREE = 3
Da der Aufzählungstyp eine Reihe von Bezeichnern ist, gibt es nur wenige Fälle, in denen der dem Bezeichner selbst zugewiesene Wert von Bedeutung ist. Wenn es sich um einen Listentyp handelt, kann er leicht mit einer for-Anweisung ausgegeben werden. Wenn es sich jedoch um einen Aufzählungstyp handelt, ist ein gewisser schriftlicher Einfallsreichtum erforderlich.
Listentyp
>>> lst = [1, 2, 3]
>>> [l for l in lst]
[1, 2, 3]
Aufzählungstyp
>>> from enum import Enum
>>> class Hoge(Enum):
... ONE = 1
... TWO = 2
... THREE = 3
...
>>> [v.value for n, v in Hoge.__members__.items()]
[1, 2, 3]
>>> from enum import Enum
>>> class Hoge(Enum):
... ONE = 1
... TWO = 2
... THREE = 3
...
>>> [v.value for n, v in Hoge.__members__.items()]
[1, 2, 3]
>>> 1 in [v.value for n, v in Hoge.__members__.items()]
True
Es ist fertig. Ich weiß nicht, wo ich es verwenden soll.
Was ist in den aufgezählten "members"?
>>> Hoge.__members__
mappingproxy({
'ONE': <Hoge.ONE: 1>,
'TWO': <Hoge.TWO: 2>,
'THREE': <Hoge.THREE: 3>
})
Was ist "MappingProxyType"? Laut dem offiziellen Dokument
Schreibgeschützter Mapping-Proxy. Bietet eine dynamische Ansicht der Zuordnungseinträge. Dies bedeutet, dass die Ansicht diese Änderungen widerspiegelt, wenn sich die Zuordnung ändert.
Das war's(?) Dieser Proxy enthält "items ()". Es sieht aus wie ein Wörterbuch, wenn man es betrachtet.
Mir wurde gesagt, dass es eine einfachere Schreibweise gibt als @shiracamus.
>>> 1 in [e.value for e in Hoge]
True
Oder
>>> any(e.value == 1 for e in Hoge)
True
Es scheint, dass Sie schreiben können. Vielen Dank! !! Das erste ist das Niveau, warum ich es nicht bemerkt habe ...
Ich kann mich durch das Schreiben eines Artikels beraten lassen, daher dachte ich, dass die Ausgabe wichtig ist.
Recommended Posts