Встречается на собеседованиях • сегодня

Какие данные можно делать публичными, а какие должны оставаться приватными

В Python приватность данных определяется соглашениями, а не строгими ограничениями.

Публичные данные (public):

  • Без подчёркиваний: self.value – явно предназначены для использования извне
  • Документированный API класса/модуля

Защищённые (protected):

  • С одним подчёркиванием: self._internal_data – сигнал, что атрибут не предназначен для внешнего использования, но доступ возможен

Приватные (private):

  • С двумя подчёркиваниями: self.__secret – Python делает name mangling (_ClassName__secret), но доступ всё равно возможен
  • Данные, критичные для работы объекта (пароли, внутренние состояния)

Пример:

python
class BankAccount:
    def __init__(self, balance, password):
        self.balance = balance          # публичный
        self._last_transaction = None   # защищённый
        self.__password = password     # приватный

Важно:

  • Приватность в Python – договорённость, а не защита
  • Для настоящей защиты используют свойства (@property), замыкания или спец. библиотеки
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы