Junior — Middle
Duck typing konseptini tushuntiring va uning dasturlashda statik tiplashdan qanday farq qilishini aytib bering.
sobes.tech AI
AIdan javob
Duck typing — bu dasturlashda tushuncha bo'lib, ob'ektning turi uning sinfi yoki interfeysiga emas, balki ma'lum metodlar va xususiyatlarning mavjudligiga qarab aniqlanadi. Agar ob'ekt "o'rdak" kabi harakat qilsa (zarur metodlarga ega bo'lsa), u mos hisoblanadi.
Statik tiplashdan farqi:
- Statik tiplashda, turlar kompilatsiya vaqtida tekshiriladi, va ob'ektlar aniq belgilangan turlarga mos kelishi kerak.
- Duck typingda, tekshirish bajarilish vaqtida amalga oshiriladi, va faqat interfeys mosligi (metodlar/xususiyatlar) muhim, meros yoki e'lon qilingan turlar emas.
Python misoli (duck typing):
class Duck:
def quack(self):
print("Krya-krya")
class Person:
def quack(self):
print("Men o'rdak kabi qoqir")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Krya-krya
make_it_quack(Person()) # Men o'rdak kabi qoqir
Bu yerda, funksiya ob'ekt turiga emas, faqat quack metodining mavjudligiga e'tibor qaratadi.