You could use a descriptor.  The descriptor would be an attribute of the class accesible with dot notation.
from weakref import WeakKeyDictionary
class RestrictedColor:
    """A descriptor that restricts values"""
    def __init__(self, default):
        self.value = default
        self.data = WeakKeyDictionary()
    def __get__(self, instance, owner):
        return self.data.get(instance, self.value)
    def __set__(self, instance, value):
        if value.lower() not in ('blue','red'):
            raise ValueError(f'{value} is not allowed')
        self.data[instance] = value                            
class Parameters:
    color = RestrictedColor('blue')
Usage:
>>> p = Parameters()
>>> p.color
'blue'
>>> p.color = 'orange'
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    p.color = 'orange'
  File "foo.py", line 40, in __set__
    raise ValueError(f'{value} is not allowed')
ValueError: orange is not allowed
>>> p.color = 'red'
>>> p.color
'red'
>>> getattr(p, 'color')
'red'
>>> 
If you need Parameters instances to be subscriptable:
class BenignDescriptor:
    """A descriptor that accepts anything"""
    def __init__(self, default):
        self.value = default
        self.data = WeakKeyDictionary()
    def __get__(self, instance, owner):
        return self.data.get(instance, self.value)
    def __set__(self, instance, value):
        self.data[instance] = value                            
class Parameters:
    color = RestrictedColor('blue')
    distance = BenignDescriptor('far, far away')
    def __getitem__(self, item):
        return getattr(self, item)
    def __setitem__(self, item, value):
        return setattr(self, item, value)
Usage
>>> p = Parameters()
>>> p['color']
'blue'
>>> p.distance
'far, far away'
>>> p['distance'] = 'close'
>>> p['distance']
'close'
>>>