Le classi in python

Il linguaggio python consente l'utilizzo delle classi.

Cos'è una classe?

E' una caratteristica della programmazione orientata agli oggetti (OOP).

L'uso delle classi evita la ripetizione delle stesse informazioni su più oggetti ed è più efficiente rispetto alla vecchia programmazione procedurale.

Nota Mentre nella programmazione procedurale ( tradizionale ) occorre definire le proprietà di ogni oggetto, nella programmazione OOP si crea una classe con le proprietà e si associano gli oggetti alla classe . In questo modo si evita di scriverle per ogni oggetto.
la differenza tra la programmazione procedurale e la programmazione orientata agli oggetti

L'ereditarietà delle classi

L'ereditarietà è uno dei punti di forza della programmazione a oggetti e Python non fa eccezioni.

Quando una classe derivata viene associata a un'altra classe ( base class ), la classe derivata eredita il comportamento della classe base a cui aggiunge delle funzionalità proprie.

Come creare una classe in python

Per definire una classe in python uso questa sintassi:

class nomeclasse:
contenuto

Un esempio pratico

Creo la classe Persona

  1. class Persona():
  2. '''Classe che identifica le persone.'''
  3. def __init__(self, Nome, Cognome):
  4. self.Nome = Nome
  5. self.Cognome = Cognome
  6. def __str__(self):
  7. return "Nome: " + str(self.Nome) + "\nCognome: " + str(self.Cognome)

Questa classe identifica le persone.

E' composta da due metodi:

  1. __init__ definisce le proprietà degli oggetti (self) della classe. In questo esempio ogni oggetto della classe Persona() ha due proprietà:
    1. Nome
    2. Cognome
  2. __str__ ritorna una rappresentazione sotto forma di stringa dell'oggetto assegnato alla classe Persona().

Cosa sono i metodi? I metodi sono simili alle funzioni ma sono definiti all'interno di una classe. Inoltre, per invocare un metodo si utilizza una sintassi diversa rispetto alle funzioni.

Come associare un oggetto alla classe

Per associare un oggetto alla classe digito:

eric = Persona("Eric", "Idle")

Il primo argomento ("Eric") è associato alla prima proprietà della classe Persona ossia Nome.

Il secondo argomento ("Idle") è invece associato alla seconda proprietà ossia Cognome.

A questo punto, visualizzo il contenuto della variabile eric con l'istruzione print.

print(eric)

L'interprete python restituisce questo risultato

Nome: Eric
Cognome: Idle

Il programma visualizza le informazioni insieme alle proprietà della classe.

In particolar modo, le rappresenta utilizzando la stringa definita con il metodo __init__della classe.

L'oggetto ha ereditato le proprietà della classe

In questo modo evito di doverle specificare per qualsiasi oggetto che associo alla classe.

Come leggere le proprietà di un oggetto

Posso accedere alle singole proprietà dell'oggetto indicandole come attributo.

La proprietà vanno indicate alla destra del nome dell'oggetto e separate da un punto.

oggetto.proprietà

Esempio

In questo esempio digito sulla console

eric.Nome

L'interprete python legge la variabile (eric) restituisce soltanto l'informazione associata alla proprietà Nome.

Eric

Non restituisce le altre proprietà.

In questo modo posso leggere o modificare le singole informazioni di un oggetto senza modificare le altre.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Classi Python