You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
867 B
52 lines
867 B
|
3 months ago
|
from enum import IntEnum, Flag, Enum, auto
|
||
|
|
|
||
|
|
def test_enum_flag():
|
||
|
|
class pippo(int, Flag):
|
||
|
|
A = 0x01
|
||
|
|
B = 0x02
|
||
|
|
C = 0x03
|
||
|
|
|
||
|
|
f1 = pippo.A
|
||
|
|
f2 = pippo.B
|
||
|
|
f3 = pippo.C
|
||
|
|
f4 = pippo.A | pippo.B
|
||
|
|
|
||
|
|
print(f1)
|
||
|
|
print(f2)
|
||
|
|
print(f3)
|
||
|
|
print(f4)
|
||
|
|
|
||
|
|
print(f1.value)
|
||
|
|
print(f2.value)
|
||
|
|
print(f3.value)
|
||
|
|
print(f4.value)
|
||
|
|
|
||
|
|
print(bool(pippo.A & f1))
|
||
|
|
print(bool(pippo.A & f2))
|
||
|
|
print(bool(pippo.A & f3))
|
||
|
|
print(bool(pippo.A & f4))
|
||
|
|
|
||
|
|
print(int(f1))
|
||
|
|
print(int(f2))
|
||
|
|
print(int(f3))
|
||
|
|
print(int(f4))
|
||
|
|
|
||
|
|
print(f"{int(f1):03X}")
|
||
|
|
print(f"{int(f2):03X}")
|
||
|
|
print(f"{int(f3):03X}")
|
||
|
|
print(f"{int(f4):03X}")
|
||
|
|
|
||
|
|
def test_enum_flag():
|
||
|
|
class Pippo(str, Enum):
|
||
|
|
A = '0x01'
|
||
|
|
B = '0x02'
|
||
|
|
C = '0x03'
|
||
|
|
|
||
|
|
a = Pippo.A
|
||
|
|
assert isinstance(a,Pippo)
|
||
|
|
assert isinstance(a,(Pippo,))
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|