Как реализовать приватный атрибут в классе
Python
Middle
Без компании
Как реализовать приватный атрибут в классе
Ответы
В Python приватные атрибуты создаются с помощью двойного подчёркивания `__` перед именем атрибута. Это вызывает механизм name mangling (искажения имён), который добавляет `_ИмяКласса` к имени атрибута.
Пример:
```
class MyClass:
def __init__(self):
self.__private_attr = "I'm private"
obj = MyClass()
print(obj.__private_attr) # Вызовет AttributeError
print(obj._MyClass__private_attr) # Работает (но так делать не стоит)
```
Важные моменты:
- Это не настоящая приватность, а лишь соглашение
- Доступ возможен через `_ИмяКласса__атрибут`, но так делать не рекомендуется
- Одиночное подчёркивание `_attr` - соглашение для "protected" атрибутов