lezione 05

oop in python

classi, metodi, dataclass e design pulito.

livello: base durata: 26 min output: classi riusabili badge: oop core

classi

class User:
    def __init__(self, name: str):
        self.name = name

    def greet(self) -> str:
        return f"ciao {self.name}"

dataclass

from dataclasses import dataclass

@dataclass
class Project:
    title: str
    year: int

ereditarietà

class Base:
    def run(self):
        return "base"

class Child(Base):
    def run(self):
        return "child"

pattern

usa composizione quando possibile per ridurre accoppiamento.

tip: dataclass + typing rendono le classi leggibili.

panoramica

In questo capitolo su oop in python, classi, metodi, dataclass e design pulito. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: oop core

obiettivi

  • capire e applicare classi in uno scenario reale
  • capire e applicare dataclass in uno scenario reale
  • capire e applicare ereditarietà in uno scenario reale
  • capire e applicare pattern in uno scenario reale

scheda rapida

def main():
    dati = [1, 2, 3]
    risultati = [x * 2 for x in dati]
    print(risultati)

if __name__ == "__main__":
    main()

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

mini progetto

Modella un catalogo film con classi e metodi di dominio.

  • crea classe Film con campi base
  • aggiungi metodi durata_min e is_feature
  • crea sottoclasse ShortFilm
  • testa con 2-3 istanze

output atteso: uno script o query ripetibile con risultati verificabili.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief