Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Инкапсуляция Python не понимаю

tzi izi Профи (684), закрыт 11 месяцев назад
В чём смысл делать в классе атрибуты или методы приватными? Только чтобы кто-то кто будет работать с этим кодом не вызвал их?
Лучший ответ
Def Гений (66626) 1 год назад
1) Чтобы не вызывал, 2) чтобы понимал, когда смотрит на интерфейс класса, что с этими сущностями не нужно разбираться для того, чтобы использовать класс, 3) чтобы показать, что это внутренняя реализация, которая может меняться от версии к версии и т.д.
Остальные ответы
Терр Онтал Мудрец (14480) 1 год назад
Например, представь что ты пишешь класс для какой-нибудь структуры данных, и хочешь знать, сколько элементов в настоящий момент в твоей структуре. Для этого тебе нужен атрибут, назовем его size, в котором будет храниться количество элементов, и метод getSize, который будет возвращать значение size. Что будет, если size будет не приватным, т.е. дать пользователю возможность изменять size напрямую? Пользователь сможет сделать x.size = 100000, и твоя логика по подсчёту размера поломается
Celtic Hammer Мудрец (18300) 1 год назад
В основном чтобы метод можно было менять по своему усмотрению, но весь код в целом это не затрагивало бы
Похожие вопросы