Встречается на собеседованиях • сегодня

Знаешь ли противоположность концепции утиной типизации

В 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) код без соответствия типу не скомпилируется.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы