Встречается на собеседованиях • сегодня
Знаешь ли противоположность концепции утиной типизации
В Python противоположностью утиной типизации (duck typing) является номинативная типизация (nominal typing), где тип объекта определяется его явным объявлением, а не поведением.
Пример:
python
from typing import Protocol
class Quackable(Protocol):
def quack(self) -> str: ...
def make_sound(duck: Quackable) -> str:
return duck.quack()
Утиная типизация (работает без наследования)
class RealDuck:
def quack(self) -> str:
return "Quack!"
Номинативная типизация (требует явного соответствия)
class ToyDuck(Quackable):
def quack(self) -> str:
return "Squeak!"
make_sound(RealDuck()) # OK (утиная)
make_sound(ToyDuck()) # OK (номинативная)
text
Здесь `Protocol` задает явный контракт, а `isinstance()` или наследование проверяют тип статически. В строгой номинативной типизации (как в Java) код без соответствия типу не скомпилируется.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы