Che cos'è la POO?

Introduzione alla programmazione orientata agli oggetti in Python

George Boorman

Curriculum Manager, DataCamp

Programmazione procedurale

  • Codice come sequenza di passaggi
  • Ottimo per l'analisi dei dati

Scale

1 Fonte immagine: https://unsplash.com/@tateisimikito
Introduzione alla programmazione orientata agli oggetti in Python

Pensare in sequenze

icone di una persona a letto seguite da un’icona di caffè seguita da un’icona di valigetta

un assortimento di icone che rappresentano molte attività

Introduzione alla programmazione orientata agli oggetti in Python

Programmazione procedurale

  • Codice come sequenza di passaggi
  • Ottimo per l'analisi dei dati

Programmazione orientata agli oggetti

  • Codice come interazioni tra oggetti
  • Ottimo per creare software
  • Codice manutenibile e riutilizzabile!
Introduzione alla programmazione orientata agli oggetti in Python

Oggetti

$$\Large{\text{Oggetto = dati + funzionalità}}$$

silhouette di una persona con un laptop che rappresenta un cliente

                                                      **Stato** - i _dati_{{3}} di un oggetto

                                              **Comportamento** - la _funzionalità_{{4}} di un oggetto
Introduzione alla programmazione orientata agli oggetti in Python

Oggetti in Python

  • Tutto in Python è un oggetto
Oggetto Tipo
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Introduzione alla programmazione orientata agli oggetti in Python

Le classi come modelli

  • Classe: un modello per oggetti che definisce stati e comportamenti possibili

classe cliente

Introduzione alla programmazione orientata agli oggetti in Python

Le classi come modelli

  • Classe : un modello per oggetti che definisce stati e comportamenti possibili

classe cliente che si dirama in oggetti cliente

Introduzione alla programmazione orientata agli oggetti in Python

Classi in Python

  • Gli oggetti Python dello stesso tipo si comportano allo stesso modo
  • lists sono una classe
    • Creato con valori separati da virgole [1, 2, 3, 4, 5]
    • Condividi gli stessi metodi, ad es. .append()
  • Usa type() per trovare la classe
type([1, 2, 3, 4, 5])
<class 'list'>
Introduzione alla programmazione orientata agli oggetti in Python

Attributi e metodi

Stato ↔ attributi
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape attribute df.shape
(3, 2)
  • Usa obj. per accedere ad attributi e metodi
Comportamento ↔ metodi
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# head method df.head()
   a  b
0  1  4
1  2  5
2  3  6
Introduzione alla programmazione orientata agli oggetti in Python

Visualizzazione di attributi e metodi

# Display attributes and methods
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# Display attributes and methods
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Introduzione alla programmazione orientata agli oggetti in Python

Cheat sheet

Termine Definizione
Classe Un progetto/modello usato per costruire oggetti
Oggetto Una combinazione di dati e funzionalità; Un'istanza di una classe
Stato Dati associati a un oggetto, assegnati tramite attributi
Comportamento La funzionalità di un oggetto, definita tramite metodi
Introduzione alla programmazione orientata agli oggetti in Python

Rivediamo!

Introduzione alla programmazione orientata agli oggetti in Python

Preparing Video For Download...