Встречается на собеседованиях • сегодня
Есть ли открытое ООО
В Python нет понятия "открытого" или "закрытого" ООП в классическом смысле (как в C++ или Java). Все атрибуты и методы классов по умолчанию доступны извне. Однако есть соглашения и механизмы для инкапсуляции:
- Соглашение: атрибуты/методы, начинающиеся с
_, считаются "protected" (условно-закрытыми) — это договорённость между разработчиками.
python
class Example:
def __init__(self):
self._internal = 42 # "защищённый" атрибут- Name Mangling: двойное подчёркивание
__перед именем искажает его, делая труднодоступным извне (но не невозможным):
python
class Example:
def __init__(self):
self.__secret = 100 # станет _Example__secret
obj = Example()
print(obj._Example__secret) # 100 (но так делать не стоит)- Property: контроль доступа через декораторы:
python
class Example:
@property
def value(self):
return self._value
@value.setter
def value(self, val):
self._value = max(0, val)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы