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