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.
Teqlər:
Ə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!