class AttributeGetter: mandatory = [] # noinspection PyUnusedLocal def __init__(self, *args, **kwargs): if not hasattr(self, 'value'): self.value = None for m in self.mandatory: if not hasattr(self, m) or getattr(self, m) is None: raise ValueError(f'Value attribute must have {m} assigned') def get_value(self): return self.value def get_value_serialized(self): return self.value