A Byte of Python

Capitolo 11. Programmazione orientata agli oggetti (OOP)

Sommario

Introduzione
Self
Classi
Creare una classe
Metodi oggetto
Usare metodi oggetto
Il metodo __init__
Usare il metodo __init__
Variabili di classi e oggetti
Uso delle variabili di classi e oggetti
Ereditarietà
Usare l'ereditarietà
Sommario

Introduzione

Tutti i programmi visti fino ad ora sono stati progettati intorno a funzioni e blocchi di istruzioni che elaborano in qualche modo i dati. Questa metodica viene detta orientata alle procedure. C'è tuttavia un altro modo per organizzare i programmi che si basa sulla combinazione di dati e funzionalità in una nuova entità chiamata oggetto. Questo paradigma è conosciuto col nome di programmazione orientata agli oggetti. Normalmente si usa l'approccio procedurale ma talvolta, e soprattutto quando siamo alle prese con programmi di una certa complessità, potrebbe tornare utile applicare la tecnica oop.

Classi e oggetti sono due degli aspetti principali della oop. Una classe crea un nuovo tipo dove gli oggetti sono istanze delle classi. Un' analogia possiamo trovarla considerando variabili di tipo int che memorizzano valori interi; sono in realtà istanze (cioè oggetti) della classe int.

Nota per i programmatori C / C++ / Java / C#

Si noti che anche gli interi sono trattati come oggetti (della classe int), a differenza di C++ e Java (prima della versione 1.5) in cui gli interi sono tipi primitivi nativi. Consultare help(int) per maggiori dettagli sulle classi.

I programmatori di C# e Java 1.5 avranno senz'altro familiarità con questi concetti essendo molto simili a quelli di boxing e unboxing.

Gli oggetti possono memorizzare variabili ordinarie che appartengono all'oggetto. Le variabili che appartengono ad un oggetto o ad una classe sono chiamati campi. Gli oggetti possono anche avere delle funzionalità che appartengono ad una classe; tali funzioni sono chiamate metodi della classe. Questa terminologia è essenziale perché aiuta a differenziare tra funzioni e variabili generiche e quelle che appartengono alla classe o all'oggetto. Correttamente, ci riferiamo a campi e metodi come agli attributi di una classe.

I campi sono di due tipi: quelli che appartengono all' istanza/oggetto della classe o quelli che appartengono alla classe stessa. Sono chiamate rispettivamente variabili di istanze e variabili di classe.

Una classe è creata usando la parola chiave class. Campi e metodi di una classe devono essere scritti in un blocco indentato.