Dziedziczenie, nadpisanie settera z klasie potomnej.

1

Witam!
Mam taki kod:

class A():
    def __init__(self, name):
        self.__name = name

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, name):
        self.__name = name

    def __str__(self):
        return f" My name is: {self.name}"


class B(A):
    @A.name.setter
    def name(self, name):
        self.__name = '123' +  name


a = A('Adam')
print(a)
a.name = "Andrzej"
print(a)
b = B('Borubar')
b.name = 'Bolek'
print(b)

output to :

 My name is: Adam
 My name is: Andrzej
 My name is: Borubar

Dlaczego funkcja print(b) wyświetla Borubar a nie 123Bolek ?
Z góry dziękuje za odpowiedź.

0

Brakuje Ci gettera w B

3

@January

class B(A):
    @A.name.setter
    def name(self, _name):
        A.name.fset(self, _name)

https://docs.python.org/3/library/functions.html#property:

1 użytkowników online, w tym zalogowanych: 0, gości: 1