La programmazione ad oggetti

Diamo un’introduzione sulla programmazione ad oggetti prima di affrontarla con Python.

Con il termine di OOP, ovvero Object Oriented Programming, intendiamo un paradigma di programmazione. In questo paradigma un programma può essere visto come un insieme di oggetti che interagiscono tra loro.

Finora, per lo sviluppo dei nostri programmi, abbiamo seguito un approccio procedurale e/o funzionale.

Ricordiamo che nell’approccio procedurale si eseguono le istruzioni secondo un ordine predefinito per ottenere il risultato desiderato, partendo dai dati di input.

Nell’approccio funzionale abbiamo utilizzato le funzioni da poter poi richiamare all’occorrenza anche in un programma principale detto main().

Adesso, nella programmazione orientata agli oggetti seguiremo un approccio che segue l’idea di utilizzare delle unità funzionali autonome.

Chiaramente i vari approcci possono essere utilizzati assieme.

La programmazione ad oggetti – OOP

Questo tipo di programmazione prende nome proprio dall’elemento su cui si basa, ovvero l’oggetto.

Un oggetto rappresenta dunque l’entità del problema. Infatti in esso possiamo memorizzare le informazioni che riguardano il suo stato ed associare un insieme di operazioni che esso può compiere.

Un oggetto può avere dunque degli attributi e dei metodi.

Gli attributi sono gli elementi che caratterizzano l’oggetto, cioè che lo descrivono.

I metodi invece sono le funzionalità che l’oggetto mette a disposizione.

Un classico esempio può essere rappresentato dall’oggetto auto. Questo oggetto può avere infatti degli attributi e dei metodi, facilmente classificabili.

Gli attributi possono ad esempio essere:

  • Casa_Produttrice
  • Cilindrata
  • Numero_Porte
  • Alimentazione
  • Potenza
  • ecc…

Mentre i metodi possono essere ad esempio:

  • Cambio_Marcia
  • Accelera
  • Frena
  • Rifornisci
  • ecc…

Come possiamo notare gli attributi sono le caratteristiche dell’auto, mentre i metodi sono le azioni che si possono esercitare sull’auto come accelerare, frenare, ecc.

La programmazione ad oggetti – Classe

Diamo un altro concetto importante per la programmazione ad oggetti, ovvero quello di classe.

La classe è la descrizione astratta dell’oggetto attraverso i suoi attributi e metodi. Infatti, per poter utilizzare un oggetto occorre creare una sua istanza.

Per rappresentare una classe si può usare anche uno schema grafico, ovvero un diagramma della classe che serve a identificare il nome, i suoi attributi e i suoi metodi.

Come ad esempio questo diagramma rappresentato nella tabella sotto:

Auto
Attributi
Casa_Produttrice
Cilindrata
Numero_Porte
Alimentazione
Metodi
Cambio_Marcia
Accelera
Frena
Rifornisci

Dopo aver definito una classe, nella programmazione ad oggetti, possiamo rappresentare le sue istanze.

Ad esempio:

Auto1

Casa_Produttrice: Fiat
Cilindrata: 60 kw
Numero_Porte: 5
Alimentazione: Diesel

Auto2

Casa_Produttrice: Maserati
Cilindrata: 90 kw
Numero_Porte: 5
Alimentazione: Diesel

Abbiamo definito così delle istanze dell’oggetto auto specificando i suoi attributi, in questo modo possiamo identificare le due auto facilmente ed utilizzarle all’interno dei nostri programmi.

Conclusioni

In questa lezione abbiamo semplicemente fornito un’introduzione sulla programmazione orientata agli oggetti, nelle prossime lezioni approfondiremo in dettaglio questi concetti.

Alcuni link utili

Indice tutorial sul linguaggio Python

Operazioni con i file in Python

Introduzione ai dizionari in Python

Creare matrici in Python

Funzione lambda in Python

Utilizzare Plot di Matplotlib

Quali sono i metodi delle liste

Continua la lettura su: https://www.codingcreativo.it/la-programmazione-ad-oggetti/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Articoli Correlati

Lambda in Python

Studiamo le funzioni lambda in Python, ovvero le funzioni anonime.Nelle precedenti lezioni abbiamo visto come creare delle funzioni utilizzando la parola chiave def seguita dal nome della funzione e dagli argomenti se ce ne sono.Al contrario la funzione lambda non ha un nome, ma solo gli argomenti e un’unica espressione di calcolo.La sintassi della funzione lambda in Python è dunque la seguente:lambda argomenti: espressioneEsempi sulla funzione lambda in PythonFacciamo alcuni esempi per capire meglio il funzionamento.Come primo esempio costruiamo una funzione lambda utile per calcolare il cubo di un numero:
f_cube = lambda x : x * x * x
print(f_cube(3))
La stessa funzione utilizzando def si poteva scrivere in questo modo:

def f_cube(x):
return x * x * x

print(f_cube(3))
Il risultato è chiaramente lo stesso.Possiamo anche scrivere in maniera molto compatta in questo modo:

print((lambda x: x * x * x)(3))

Più argomenti nella funzione lambda in PythonSi possono inserire anche più argomenti, separandoli da virgole. Facciamo un esempio con una funzione che calcola l’area di un rettangolo.

f_area = lambda x, y : x * y
print(f_area(4,5))

#in maniera compatta
print((lambda x, y: x*y)(4,5))

Valutare un’espressione BooleanaPossiamo anche valutare un’espressione booleana.Prendiamo ad esempio in considerazione un numero e stabiliamo se è pari oppure dispari.

f_even = lambda x : x % 2 == 0
print(f_even(8))
print(f_even(9))

L’output prodotto sarà dunque questo:TrueFalsePerchè usare la funzione lambda in PythonSicuramente uno dei motivi per cui viene utilizzata è quello di risparmiare righe di codice, migliorandone la leggibilità. Quando infatti devo usare una funzione per un tempo breve, non serve definirla.Inoltre uno dei campi maggiori di utilizzo è quando si vuole passare una funzione come argomento di un’altra funzione.Vedremo molto spesso le funzioni lambda utilizzare con le funzioni map() o filter() di Python.Facciamo un primo esempio utilizzando filter():
list_number = [11,8,4,5]

new_list = list(filter(lambda x: x%2 == 0, list_number))

print(new_list)

In questo caso l’output prodotto sarà questo: [8, 4]Oppure possiamo anche utilizzare map().
list_number = [11,8,4,5]

new_list = list(map(lambda x: x%2==0, list_number))

print(new_list)

L’output prodotto sarà questo: [False, True, True, False]La lista sarà popolata con i valori booleani.Potremmo anche utilizzare un ciclo for in:
list_number = [11,8,4,5]

new_list = [even for even in list_number if even %2 ==0]

print(new_list)

Infine possiamo aggiungere che l’utilizzo della funzione lambda in Python è particolarmente indicato quando si lavora con alcune librerie, come ad esempio Pandas, Numpy, ecc.Invece non si può utilizzare quando ad esempio vogliamo eseguire più operazioni indipendenti nell’ambito di una funzione. O ancora quando ho bisogno di scrivere istruzioni su più righe.Alcuni link utiliIndice tutorial sul linguaggio Python1 – Introduzione al linguaggio Python2 – Le variabili3 – Operatori aritmetici e di assegnazione4 – Stringhe5 – Casting6 – Input e print7 – Primi esercizi in Python8 – Errori in Python

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000