Защищенные методы в ООП в Python
В Python принято помечать методы, которые не должны вызываться снаружи класса, одним подчеркиванием в начале имени. Такие методы наследуются, но снаружи их не вызывают.
Давайте посмотрим, как это работает. Напишем класс-родитель с таким методом:
class User:
def set_name(self, name):
self.name = name
def get_name(self):
return self._cape(self.name)
def _cape(self, string):
return string[0].upper() + string[1:]
Воспользуемся этим методом в классе-потомке:
class Student(User):
def set_surn(self, surn):
self.surn = surn
def get_surn(self):
return self._cape(self.surn)
В следующем коде сделайте вспомогательный метод защищенным:
class User:
def set_name(self, name):
if self.not_empty(name):
self.name = name
def get_name(self):
return self.name
def not_empty(self, string):
return len(string) > 0
class Employee(User):
def set_surn(self, surn):
if self.not_empty(surn):
self.surn = surn
def get_surn(self):
return self.surn