Защищенные свойства в ООП в Python
В Python также принято помечать свойства, которые не должны использоваться снаружи класса, одним подчеркиванием в начале имени. Такие свойства наследуются и доступны в классах-потомках.
Сделаем класс-родитель с защищенным свойством, содержащим возраст:
class User:
def __init__(self):
self._age = None
def set_age(self, age):
self._age = age
def get_age(self):
return self._age
В классе потомке сделаем метод, увеличивающий возраст на единицу:
class Student(User):
def inc_age(self):
self._age += 1
Перепишите следующий код через защищенное свойство:
class User:
def __init__(self):
self.__name = None
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
class Employee(User):
def set_name(self, name):
if len(name) > 0:
self.__name = name