Sobes.tech
Junior — Middle

Duck typing anlayışını izah edin və onun proqramlaşdırmada statik tipləşdirmədən fərqini göstərin.

sobes.tech Süni İntellekt

AI-dan cavab

Duck typing — bu konseptdir proqramlaşdırmada, burada obyektin tipi onun sinfi və ya interfeysi ilə deyil, müəyyən metodların və xüsusiyyətlərin mövcudluğu ilə müəyyən edilir. Əgər obyekt "ördəklər" kimi davranırsa (zəruri metodlara malikdirsə), o, uyğun sayılır.

Statik tipdən fərqi:

  • Statik tipdə, tiplər tərtib zamanı yoxlanılır və obyektlərin açıq şəkildə müəyyən edilmiş tiplərə uyğun olması lazımdır.
  • Duck typing-də, yoxlama icra zamanı baş verir və yalnız interfeys uyğunluğu (metodlar/xüsusiyyətlər) vacibdir, irs və ya bəyan edilmiş tiplər deyil.

Python nümunəsi (duck typing):

class Duck:
    def quack(self):
        print("Vək vək")

class Person:
    def quack(self):
        print("Mən də ördəklər kimi vək edə bilərəm")

def make_it_quack(thing):
    thing.quack()

make_it_quack(Duck())    # Vək vək
make_it_quack(Person())  # Mən də ördəklər kimi vək edə bilərəm

Burada, funksiya obyektin tipindən çox, quack metodunun mövcudluğundan xəbərdardır.