Протоколы



Это фишка type hint'ов. За счёт протоколов мы говорим «У тебя должен быть атрибут A, B, C» вместо «Ты должен быть унаследован от ClassName».



Что-то похожее на интерфейсы в ООП языках, только мы проверяем наличие атрибутов, а не заставляем реализовывать методы.



И напоминаю, что type hint'ы никак не влияют на приложение, они только для прогеров и IDE.



#теория