我正在尝试找到一种方法来约束python中的变量值。 例如,假设我有一个可变门,它只能采用两个值:打开或关闭。像
door = 'open' || 'closed'
然后,当我在某个地方使用门时,我确信不需要检查这些值,因为我断言门只是打开或关闭。
也许有课吗?
class Door(object):
open = 'open'
closed = 'closed'
def value(v=True, self):
if v return open else return closed
但是如果变量可以接受两个以上的值,该怎么办(我在这里被布尔值的本质所保护)? 你会怎么做?
答案 0 :(得分:7)
考虑使用enum
:
import enum
class Door(enum.Enum):
open = 'open'
closed = 'closed'
d = Door('open')
print(d.value)
d = Door('closed')
print(d.value)
d = Door('is not a valid Door')
print(d.value)
输出:
open
closed
ValueError: 'is not a valid Door' is not a valid Door