@propertydefvalue(self):returnself._valuedef__repr__(self):address_as_string=(f"{self._value:#x}")ifisinstance(self._value,int)else(f"{self._value}")returnf"HeapAddress<{address_as_string}>"def__add__(self,value):ifnotisinstance(value,int):raiseTypeError(f"Can only add int to HeapAddress, got {type(value).__name__}")returnHeapAddress(self.value+value)def__radd__(self,value):returnself.__add__(value)def__eq__(self,other):returnisinstance(other,HeapAddress)andself._value==other._valuedef__hash__(self):returnhash(self._value)