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

Какой синтаксис у private параметра

В Python нет строгих private-параметров, но есть соглашение об именовании для обозначения "приватных" атрибутов и методов. По соглашению, имена, начинающиеся с одного подчеркивания _, считаются защищенными (protected), а с двойного __ - приватными (private).

Приватные имена (__name) вызывают механизм name mangling - интерпретатор изменяет имя, добавляя перед ним имя класса. Это не делает атрибут по-настоящему приватным, но усложняет случайный доступ.

Пример:

python
class MyClass:
    def __init__(self):
        self._protected = 10  # защищенный
        self.__private = 20   # приватный

obj = MyClass()
print(obj._protected)  # 10 (доступ есть, но не рекомендуется)
print(obj.__private)   # AttributeError
print(obj._MyClass__private)  # 20 (работает через mangling)

Важно: это лишь соглашение, Python доверяет разработчику и не запрещает доступ. Для настоящей инкапсуляции можно использовать @property или модуль accessify.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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