- object_identity.py
"""
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')
René Probst, bearbeitet durch Marcel Suter