Sobes.tech
Junior — Middle

Explică conceptul de duck typing și în ce constă diferența față de tiparea statică în programare.

sobes.tech AI

Răspuns de la AI

Duck typing — este o concept în programare în care tipul unui obiect nu este determinat după clasa sau interfața sa, ci după prezența anumitor metode și proprietăți. Dacă un obiect se comportă ca o "rață" (are metodele necesare), atunci este considerat potrivit.

Diferența față de tipizarea statică:

  • În tipizarea statică, tipurile sunt verificate în timpul compilării, iar obiectele trebuie să corespundă explicit tipurilor definite.
  • În duck typing, verificarea are loc în timpul execuției, și doar compatibilitatea interfeței (metode/proprietăți) contează, nu moștenirea sau tipurile declarate.

Exemplu în Python (duck typing):

class Duck:
    def quack(self):
        print("Quack quack")

class Person:
    def quack(self):
        print("Pot să scurmă ca o rață")

def make_it_quack(thing):
    thing.quack()

make_it_quack(Duck())    # Quack quack
make_it_quack(Person())  # Pot să scurmă ca o rață

Aici, funcția nu se preocupă de tipul obiectului, ci doar de existența metodei quack.