Junior — Middle
Објасните концепт duck typing и у чему се разликује од статичке типизације у програмирању.
sobes.tech АИ
Одговор од АИ
Duck typing — концепција у програмирању у којој се тип објекта не одређује по његовој класи или интерфејсу, већ по присуству одређених метода и својстава. Ако објекат понаша као "патка" (има потребне методе), сматра се погодним.
Разлика у односу на статичко типизацију:
- У статичкој типизацији, типови се проверавају током компилације, и објекти морају јасно одговарати одређеним типовима.
- У duck typing-у, провера се врши током извршавања, и важна је само компатибилност интерфејса (метода/својстава), а не наслеђивање или проглашени типови.
Пример у Python-у (duck typing):
class Duck:
def quack(self):
print("Кря-кря")
class Person:
def quack(self):
print("Могу крикати као патка")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Кря-кря
make_it_quack(Person()) # Могу крикати као патка
Овде, функција се не бави типом објекта, већ само постојањем методе quack.