В чем разница между _ и __
Python
Middle
Без компании
В чем разница между _ и __
Ответы
В Python символы `_` и `__` используются для обозначения приватности атрибутов и методов, но с разной степенью строгости:
- **Одиночное подчеркивание (`_`)**
- Условно приватный атрибут/метод (соглашение, а не строгая защита).
- Не импортируется при `from module import *`.
- Пример: ```
class MyClass:
def _internal_method(self):
print("Это внутренний метод")
```
- **Двойное подчеркивание (`__`)**
- Запускает механизм name mangling (искажение имени), чтобы избежать конфликтов в подклассах.
- Имя преобразуется в `_ИмяКласса__атрибут`.
- Пример: ```
class MyClass:
def __private_method(self):
print("Это приватный метод")
```
Вызов `obj.__private_method()` вызовет ошибку, но доступ возможен через `obj._MyClass__private_method()`.
**Итог:** `_` — соглашение для "внутреннего" использования, `__` — техническая защита от переопределения.