Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSenior Deep-DivesModule 6 · FAANG-2026 deep divestyping.Protocol — runtime_checkable's hidden holepredict109 / 161
+150 XP
Compito
📝 **Compito:** Prevedere l'output esatto. Quattro classi vengono testate rispetto a un protocollo \`Closeable\` controllabile in fase di esecuzione (un metodo: \`close()\`). \`File\` è il caso canonico. \`Borsa\` non ha \`chiusura\`. \`Stream\` definisce \`close\` senza ereditare. \`Strano\` ha \`close = 42\` — un int. Cosa dice istance per ciascuno? 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

from typing import Protocol, runtime_checkable


@runtime_checkable
class Closeable(Protocol):
    def close(self) -> None: ...


class File:
    def close(self):
        return "file"


class Bag:
    pass


class Stream:
    """Doesn't inherit Closeable; still passes by structural matching."""
    def close(self):
        return "stream"


class Weird:
    """Has a 'close' attribute, but it's an int."""
    close = 42


print(isinstance(File(), Closeable))
print(isinstance(Bag(), Closeable))
print(isinstance(Stream(), Closeable))
print(isinstance(Weird(), Closeable))

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…