Dziedziczenie, nadpisanie settera z klasie potomnej.

Dziedziczenie, nadpisanie settera z klasie potomnej.
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
1

Witam!
Mam taki kod:

Kopiuj
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 :

Kopiuj
 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ź.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0

Brakuje Ci gettera w B

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5026
3

@January

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.