Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpIhPrM 36 of 174 menu
◀ ▶

Приватные методы при наследовании в ООП в Python

Приватные методы не наследуются. Это сделано специально, чтобы не нарушать инкапсуляцию. Давайте посмотрим на примере. Пусть у нас есть следующий родительский класс с приватным методом:

class User: def __init__(self): self.__name = None 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 __init__(self): self.__surn = None def set_surn(self, surn): self.__surn = surn def get_surn(self): return self.__surn

Пусть потомок хочет воспользоваться приватным методом родителя. Python это не разрешит и выдаст ошибку:

class Student(User): def __init__(self): self.__surn = None def set_surn(self, surn): self.__surn = surn def get_surn(self): return self.__cape(self.__surn) # будет ошибка

Попробуйте в классе Employee воспользоваться приватным методом родителя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить