Junior — Middle
Spiega il concetto di duck typing e in cosa differisce dalla tipizzazione statica nella programmazione.
sobes.tech AI
Risposta dell'AI
Il duck typing è un concetto nella programmazione in cui il tipo di un oggetto viene determinato non dal suo classe o interfaccia, ma dalla presenza di determinati metodi e proprietà. Se un oggetto si comporta come un "anatra" (ha i metodi necessari), viene considerato appropriato.
Differenza rispetto alla tipizzazione statica:
- Nella tipizzazione statica, i tipi vengono verificati in fase di compilazione, e gli oggetti devono corrispondere esplicitamente a tipi definiti.
- Nel duck typing, il controllo avviene in fase di esecuzione, e conta solo la compatibilità dell'interfaccia (metodi/proprietà), non l'ereditarietà o i tipi dichiarati.
Esempio in Python (duck typing):
class Duck:
def quack(self):
print("Qua qua")
class Person:
def quack(self):
print("Posso gracchiare come un'anatra")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Qua qua
make_it_quack(Person()) # Posso gracchiare come un'anatra
Qui, la funzione non si preoccupa del tipo dell'oggetto, ma solo della presenza del metodo quack.