Декларирование неизменности через типы
Python
Senior
Яндекс
Как в Python и через аннотации типов вы выражаете, что коллекция не должна изменяться? Приведите пример с `tuple`, `frozenset` и `typing.Mapping`/`Sequence`.
Ответы
Неизменяемые коллекции
На уровне runtime можно использовать неизменяемые типы: `tuple` вместо `list`, `frozenset` вместо `set`. На уровне типов — абстрактные типы из `collections.abc` и `typing`.
Примеры:
```python
from collections.abc import Mapping, Sequence
def process_users(users: Mapping[int, str]) -> None:
...
coords: tuple[float, float] = (1.0, 2.0)
tags: frozenset[str] = frozenset({'python', 'senior'})
```