class Literal: def __init__(self, value): """Initialisiert Literal.""" self.value = value self.read_count = 0 self.compare_count = 0 def reset_counters(self): """Setzt alle Zähler auf 0 zurück.""" self.read_count = 0 self.compare_count = 0 def get(self): """Liest den Wert aus.""" self.read_count += 1 return self.value def __eq__(self, other): """Vergleicht den Wert mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value == other.value def __ne__(self, other): """Vergleicht den Wert der Speicherzelle mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value != other.value def __lt__(self, other): """Vergleicht den Wert der Speicherzelle mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value < other.value def __le__(self, other): """Vergleicht den Wert der Speicherzelle mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value <= other.value def __gt__(self, other): """Vergleicht den Wert der Speicherzelle mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value > other.value def __ge__(self, other): """Vergleicht den Wert der Speicherzelle mit einem anderen Wert.""" assert isinstance(other, Literal), "Can only compare with Literal or MemoryCell" self.compare_count += 1 self.read_count += 1 other.read_count += 1 return self.value >= other.value def __str__(self): """Repräsentation des Werts.""" return f"{self.value}" def get_read_count(self): """Gibt zurück, wie oft der Wert gelesen wurde.""" return self.read_count def __int__(self): """Gibt den Wert als Integer zurück.""" self.read_count += 1 return int(self.value) if __name__ == "__main__": l1 = Literal(5) l2 = Literal(3) print(l1 == l2) print(l1 > l2)