Jakebut Jakebut - 1 year ago 73
Python Question

Python - allowed values of a variable

How can I explicitly define what values can given variable have? Let's say I want value of variable size to be either 'small', 'medium', or 'big' and nothing else.

EDIT:
I want to avoid a situation when variable is set to something from beyond the list (for example to 'tiny' in this case). Like enum in Java. This variable would be a class field.

Answer Source

Simplest way would be to always use dedicated method which would firstly validate input and if it's correct then set variable. Below you may find some example:

class Test:
   def __init__(self):
      self.__variable = None

   def set_variable(self, value):
      if value not in ('small', 'medium', 'big'):
         raise ValueError()
      self.__variable = value