Как реализована инкапсуляция в Python
Python
Junior
Без компании
Как реализована инкапсуляция в Python
Ответы
В Python инкапсуляция реализована через соглашения об именовании и механизм property.
- **Соглашения**:
- `_var` — protected (условно защищённый атрибут, но доступен).
- `__var` — private (имя модифицируется как `_ClassName__var`).
- **Property**:
```
class MyClass:
def __init__(self):
self.__hidden = 10 # Private
@property
def hidden(self):
return self.__hidden
@hidden.setter
def hidden(self, value):
if value > 0:
self.__hidden = value
```
**Важно**: Python не запрещает доступ к `__var` напрямую, но усложняет его. Инкапсуляция строится на доверии к разработчику.