如何表达一个变量只能接受有限数量的值?

时间:2019-05-02 22:56:36

标签: python

我正在尝试找到一种方法来约束python中的变量值。 例如,假设我有一个可变门,它只能采用两个值:打开或关闭。像

door = 'open' || 'closed'

然后,当我在某个地方使用门时,我确信不需要检查这些值,因为我断言门只是打开或关闭。

也许有课吗?

class Door(object):
   open = 'open'
   closed = 'closed'

   def value(v=True, self):
      if v return open else return closed 

但是如果变量可以接受两个以上的值,该怎么办(我在这里被布尔值的本质所保护)? 你会怎么做?

1 个答案:

答案 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