Инвариантность, ковариантность и контравариантность на примере Python
До сих пор не понимаете, что такое ковариантность и контравариантность? Чувствуете, как они дышат вам в спину, но когда оборачиваетесь ничего не находите? Давайте попробую объяснить.
Всё просто:
1. Вариантность — перенос наследования исходных типов на производные от них типы.
2. Ковариантность — перенос наследования исходных типов на производные от них типы в прямом порядке.
3. Контравариантность — перенос наследования исходных типов на производные от них типы в обратном порядке.
4. Инвариантность — ситуация, когда наследование исходных типов не переносится на производные.
Всё равно не понятно? Тогда вот вам отличное видео, в котором объясняют инвариантность, ковариантность и контравариантность на примере Python.
Post #2376
6.77K