Sobes.tech
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.