LoginSignup
0
1

More than 3 years have passed since last update.

Enum

Last updated at Posted at 2020-06-23
import enum


#@enum.unique
class Status(enum.Enum):
    ACTIVE = 1
    RENAME_ACTIVE = 1 #デコレーターをつけている場合はエラー出る
    #ACTIVE = 2 エラー出る
    INACTIVE =2
    RUNNING = 3


print(Status.ACTIVE)
#print(Status.STOPPING) エラー出る
print(Status.RENAME_ACTIVE) #ACTIVEが返ってくる
print(repr(Status.ACTIVE))
print(Status.ACTIVE.name) #ACTIVE
print(Status.ACTIVE.value) #1

for s in Status:
    print(s)
    print(type(s))

print(Status(1)) #Status.ACTIVE

実行結果:

Status.ACTIVE
Status.ACTIVE
<Status.ACTIVE: 1>
ACTIVE
1
Status.ACTIVE
<enum 'Status'>
Status.INACTIVE
<enum 'Status'>
Status.RUNNING
<enum 'Status'>
Status.ACTIVE
import enum


class Status(enum.IntEnum):
    ACTIVE = 1
    INACTIVE =2
    RUNNING = 3


print(Status.ACTIVE)  # Status.ACTIVE
print(type(Status.ACTIVE))  # <enum 'Status'>
print(Status.ACTIVE == 1)  # True 判定の時だけ数値に置き換えてくれる
import enum


class Perm(enum.IntFlag):
    R = 4
    W = 2
    X = 1


print(Perm.R | Perm.W)  # Perm.R|W
print(repr(Perm.R | Perm.W | Perm.X))  # <Perm.R|W|X: 7>
RWX = Perm.R | Perm.W | Perm.X
print(Perm.W in RWX)  # True
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1