Cos'è la OOP?

Programmazione orientata agli oggetti in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

Programmazione procedurale

 

  • Codice come sequenza di passi
  • Ottimo per l'analisi dei dati
Programmazione orientata agli oggetti in Python

Pensare in sequenze

 

icone di una persona a letto seguita da un'icona di caffè e da un'icona di valigetta

 

una serie di icone che rappresentano molte attività

Programmazione orientata agli oggetti in Python

 

Programmazione procedurale

 

  • Codice come sequenza di passi
  • Ottimo per analisi dati e script

 

Programmazione orientata agli oggetti

 

  • Codice come interazioni di oggetti
  • Ottimo per creare framework e strumenti
  • Codice manutenibile e riutilizzabile!
Programmazione orientata agli oggetti in Python

Oggetti come strutture dati

$$\Large{\text{Oggetto = stato + comportamento}}$$

sagoma di una persona con un laptop che rappresenta un cliente

 

$$\text{\textbf{Incapsulamento} - raggruppare dati con il codice che li gestisce}$$

Programmazione orientata agli oggetti in Python

Classi come schemi

  • Classe: schema per oggetti che definisce stati e comportamenti

classe cliente

Programmazione orientata agli oggetti in Python

Classi come schemi

  • Classe: schema per oggetti che definisce stati e comportamenti

classe cliente che si dirama in oggetti cliente

Programmazione orientata agli oggetti in Python

Oggetti in Python

  • Tutto in Python è un oggetto
  • Ogni oggetto ha una classe
  • Usa type() per trovare la classe
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Oggetto Classe
5 int
"Ciao" str
pd.DataFrame() DataFrame
np.mean function
... ...
Programmazione orientata agli oggetti in Python

Attributi e metodi

Stato ↔ attributi
import numpy as np
a = np.array([1,2,3,4])

# attributo shape a.shape
(4,)

 

  • Usa obj. per accedere ad attributi e metodi
Comportamento ↔ metodi
import numpy as np
a = np.array([1,2,3,4])

# metodo reshape a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Programmazione orientata agli oggetti in Python

Oggetto = attributi + metodi

  • attributo ↔ variabiliobj.my_attribute,

  • metodo ↔ funzione()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- elenca tutti gli attributi e metodi
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Programmazione orientata agli oggetti in Python

Facciamo un ripasso!

Programmazione orientata agli oggetti in Python

Preparing Video For Download...