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.