Python:
Organizzare il codice in funzioni

Come fare:

Diciamo che stai scrivendo uno script per calcolare il quadrato e il cubo di un numero. Senza funzioni, è un pasticcio di ripetizioni:

num = 4
quadrato = num * num
cubo = num * num * num
print(f"Quadrato: {quadrato}, Cubo: {cubo}")

num = 5
quadrato = num * num
cubo = num * num * num
print(f"Quadrato: {quadrato}, Cubo: {cubo}")

Output:

Quadrato: 16, Cubo: 64
Quadrato: 25, Cubo: 125

Con le funzioni, è più ordinato:

def quadrato(n):
    return n * n

def cubo(n):
    return n ** 3

num = 4
print(f"Quadrato: {quadrato(num)}, Cubo: {cubo(num)}")

num = 5
print(f"Quadrato: {quadrato(num)}, Cubo: {cubo(num)}")

Output:

Quadrato: 16, Cubo: 64
Quadrato: 25, Cubo: 125

Approfondimento

Nei vecchi tempi, quando i programmi erano semplici, si poteva cavarsela scrivendo solo una lista di istruzioni. Ma man mano che il software diventava più complesso, gli sviluppatori si sono resi conto che stavano riscrivendo lo stesso codice ancora e ancora. Ecco quindi le funzioni: blocchi di codice riutilizzabili che eseguono una singola azione.

Alternative alle funzioni includono classi (raggruppamento di funzioni con i dati su cui operano) e codice inline (intelligenza proprio dove serve, ma rischioso per compiti complessi). Dal punto di vista dell’implementazione, l’astuzia non è solo creare funzioni, ma farle fare bene una cosa sola—pensa al principio di responsabilità unica. Le funzioni dovrebbero idealmente anche essere senza stato, nel senso che non ci sono sorprese con dati in entrata o in uscita.

Vedi Anche