Lösung 1 - einseitige Beziehung

class House:
    '''
    Die Klasse gibt einzig den Typ eines Hauses zurück.
    '''
 
    def __init__(self, name):
        '''
        Legt den Typ des Hauses fest
        '''
        self._type = name
 
    @property
    def type(self):
        '''
        Liefert den Typ des Hauses
        :return: Typ des Hauses
        '''
        return self._type
 
class HomeOwner:
    '''
    Ein Hausbesitzer. Er wird durch seinen Namen benannt und kann den Typ seines Hauses bekannt geben
    '''
 
    def __init__(self, name, house):
        '''
        Erzeugt ein HomeOwnerObjekt mit einem Namen und der Referenz auf sein Haus
        :param name: Name des Hausbesitzer
        :param house: Referenz zum Haus
        '''
        self._name = name
        self._my_house = house    # Der owner erhält die Referenz im Konstruktor geliefert und weist diese zu.
 
    def print(self):
        '''
        gibt die Infos zum Hausbesitzer und seinem Haus aus.
        '''
          print(f'{self._name} besitzt ein {self._my_house.type}')  # Der owner kan die Referenz nutzen.
 
    @property
    def name(self):
        '''
        Liefert den Namen des Hausbesitzers
        :return: Name des Hausbesitzers
        '''
        return self._name
 
if __name__ == '__main__':
    house = House('Landhaus')
    owner = HomeOwner('Ron', house)      # Dem owner wird die Referenz zum Haus mitgegeben.
    owner.print()

© René Probst