Vous souhaitez utiliser une constante lorsque vous souhaitez avoir une valeur pour un élément spécifique. Quand on traite des constantes en Python, je pense personnellement qu'il est préférable d'utiliser ʻEnum` (type d'énumération).
C'est vrai. Il n'y a pas de constante stricte, car toute valeur peut être écrasée selon la façon dont vous le faites. Mais il est écrit dans Official Document.
from enum import Enum
class Hoge(Enum):
ONE = 1
TWO = 2
THREE = 3
Puisque le type d'énumération est un ensemble d'identificateurs, il existe peu de cas où la valeur donnée à l'identificateur lui-même est significative. S'il s'agit d'un type de liste, il peut être facilement sorti avec une instruction for, mais s'il s'agit d'un type d'énumération, cela nécessite une certaine ingéniosité en écriture.
Type de liste
>>> lst = [1, 2, 3]
>>> [l for l in lst]
[1, 2, 3]
Type d'énumération
>>> 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
C'est fait. Je ne sais pas où l’utiliser.
Que contient les __members__
énumérés?
>>> Hoge.__members__
mappingproxy({
'ONE': <Hoge.ONE: 1>,
'TWO': <Hoge.TWO: 2>,
'THREE': <Hoge.THREE: 3>
})
Qu'est-ce que «MappingProxyType»? Selon le Document officiel
Proxy de mappage en lecture seule. Fournit une vue dynamique des entrées de mappage. Cela signifie que si le mappage change, la vue reflétera ces changements.
Je vois(?) Il y a ʻitems () `dans ce proxy. Cela ressemble à un dictionnaire quand vous le regardez.
On m'a dit qu'il existe une façon d'écrire plus simple que @shiracamus.
>>> 1 in [e.value for e in Hoge]
True
Ou
>>> any(e.value == 1 for e in Hoge)
True
Il semble que vous puissiez écrire. Je vous remercie! !! Le premier est le niveau de pourquoi je n'ai pas remarqué ...
Je peux obtenir des conseils en écrivant un article, alors j'ai pensé que la sortie était importante.
Recommended Posts