class database_model: def __init__(self, id: int | None = None): self.__id = id @property def id(self) -> int | None: return self.__id def exists(self) -> bool: return self.__id != None @id.setter def id(self, target: int) -> None: if self.exists(): raise Exception("Database item already exists, can not change id.") if type(target) != int: raise Exception("Target ID must be Int.") if target < 1: raise Exception("Target ID must be greater than 1.") self.__id = target