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