JET School

Duck Typing nədir?

Duck Typing Python-da və bəzi digər dinamik dillərdə istifadə olunan bir anlayışdır. Bu prinsipə əsasən, bir obyektin hansı tipə (class-a) məxsus olması deyil, hansı funksionallığa malik olması önəmlidir.

Bu ifadə məşhur bir aforizmdən gəlir:

"Əgər bir şey ördək kimi gəzir, ördək kimi səs çıxarırsa, deməli, o ördəkdir."

Yəni, bir obyektin fly() və quack() metodları varsa, biz onun mütləq Duck adlı sinifdən törəməsinə ehtiyac duymuruq — sadəcə bu metodlara malik olması kifayətdir.

Nümunə:


class Duck:

def quack(self):

print("Vak vak!")


class Person:

def quack(self):

print("Mən ördək kimi danışa bilirəm!")


def make_it_quack(thing):

thing.quack()


duck = Duck()

person = Person()


make_it_quack(duck) # Çıxış: Vak vak!

make_it_quack(person) # Çıxış: Mən ördək kimi danışa bilirəm!


Bu nümunədə make_it_quack funksiyası heç bir tip yoxlaması aparmır — sadəcə quack() metodunun mövcudluğuna güvənir. Bu da duck typing prinsipi ilə işləyir.

Faydası:

  • Kod daha elastik və genişlənəbilən olur.
  • Tiplə bağlı sərt məhdudiyyətlər yoxdur, bu da sürətli prototipləşdirməyə imkan yaradır.

Qeyd:

Duck Typing istifadə olunarkən ehtiyatlı olmaq lazımdır, çünki metod yoxdursa, runtime error (işləmə zamanı xəta) ilə qarşılaşmaq mümkündür. Bunun qarşısını almaq üçün hasattr() və ya try-except blokları istifadə olunur.

Əlaqəli terminlər:

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!