Встречается на собеседованиях • сегодня
Что означают принципы PECS
PECS (Producer Extends, Consumer Super) — это мнемоническое правило в Java для работы с дженериками и вайлдкардами (? extends T и ? super T). В Python аналогов нет, но принцип можно объяснить на примере типизации:
- Producer Extends (поставщик расширяет) — если структура данных только "производит" элементы (например, итерируется), используйте
Iterable[+T](ковариантность). Пример:
python
from typing import Iterable
def process_numbers(nums: Iterable[float]) -> float:
return sum(nums) # только читаем, ковариантно
text
2. **Consumer Super** (потребитель принимает) — если структура только "потребляет" (например, добавляет элементы), используйте `List[-T]` (контравариантность). Пример:
```python
from typing import List
def fill_with_defaults(lst: List[object]) -> None:
lst.append(42) # только записываем, контравариантноВ Python это менее явно из-за duck typing, но актуально при строгой типизации (mypy, pyright).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы