""" In der Theorie haben Sie gelernt, wie mit der Methode isinstance die Zugehörigkeit eines Objekts zu einer Klasse festgestellt werden kann und wie mit dem Operator is geprüft wird, ob Referenzen identisch sind. Der folgende Code geht noch ein bisschen weiter. Sie sollen den Code studieren und sein Verhalten erklären. Dazu kann es notwendig sein, dass Sie sich über passende Suchbegriffe im Internet "schlau" machen. """ class ObjectIdentity: """ A simple class """ def __init__(self, value): """ Constructor for an object with a text. :param value: ein beliebiger Text """ self.text = value @property def text(self): """ Gets the value of _text :return: aktueller Text """ return self._text @text.setter def text(self, value): """ Sets the value of _text :param value: ein beliebiger Text """ self._text = value def __eq__(self, other): """ Compares the objects for equality. """ if isinstance(other, ObjectIdentity): return self.text == other.text elif isinstance(other, str): return self.text == other return False if __name__ == "__main__": obj1 = ObjectIdentity('auf ein Wort') obj2 = ObjectIdentity('auf ein Wort') if isinstance(obj1, ObjectIdentity): print('obj1 ist vom Typ ObjectIdentity') else: print('obj1 ist nicht vom Typ ObjectIdentity') if obj1 is obj2: print('ob1 und obj2 sind identisch') else: print('obj1 und obj2 sind nicht identisch') if obj1 == obj2: print('obj1 und obj2 haben den gleichen Inhalt') else: print('obj1 und obj2 haben unterschiedlichen Inhalt')