In questa lezione svilupperemo alcuni esempi di classi in Python, al fine di consolidare quanto appreso nelle lezioni precedenti.
Classi in Python – primo esempio
Sviluppiamo dunque un primo esempio nel quale definiamo una classe Student:
class Student:
def __init__(self, name, lastname, age):
self.name = name
self.lastname = lastname
self.age = age
Salviamo questa classe nel file ‘Student.py‘ e poi in un altro file Python lo importiamo utilizzando from ed import.
Definiamo un’istanza di Student e poi la stampiamo:
from Student import *
student1 = Student("Nick", "Rossi", 23)
print("Name =", student1.name, "\nLastname =", student1.lastname, "\nAge =", student1.age)
In output avremo quindi:
Name = Nick
Lastname = Rossi
Age = 23
Stiamo associando alla variabile student1 un’istanza dell’oggetto Student.
Cosa succede se ad esempio omettiamo un qualsiasi parametro?
Facciamo dunque un esempio dove omettiamo di inserire l’età:
from Student import *
student1 = Student("Nick", "Rossi")
print("Name =", student1.name, "\nLastname =", student1.lastname)
In questo caso il codice restituirà un errore:
...
TypeError: Student.init() missing 1 required positional argument: ‘age’
Questo perchè tutti i parametri sono obbligatori.
Come fare allora per rendere un parametro opzionale? Lo studieremo nel prossimo paragrafo.
Classi in Python – rendere un parametro opzionale
Per rendere un parametro opzionale, possiamo ad esempio assegnare un valore di default come ad esempio 0.
class Student:
def __init__(self, name, lastname, age = 0):
self.name = name
self.lastname = lastname
self.age = age
In questo modo quando definirò l’istanza student1 non si avrà più l’errore di prima:
from Student import *
student1 = Student("Nick", "Rossi")
print("Name =", student1.name, "\nLastname =", student1.lastname)
L’output sarà quindi:
Name = Nick
Lastname = Rossi
Possiamo sempre assegnare un valore ad age, in modo da sovrascrivere il valore di default:
from Student import *
student1 = Student("Nick", "Rossi", 22)
print("Name =", student1.name, "\nLastname =", student1.lastname, "\nAge =", student1.age)
Possiamo assegnare i valori di default ad uno o più parametri.
Facciamo dunque un altro esempio:
class Student:
def __init__(self, name = "Nick", lastname = "Rossi", age = 0):
self.name = name
self.lastname = lastname
self.age = age
Definiamo un’istanza senza passare alcun valore ma lasciando i valori di default:
student1 = Student()
print("Name =", student1.name, "\nLastname =", student1.lastname, "\nAge =", student1.age,)
Conclusioni
In questa lezione abbiamo studiato alcuni esempi di classi in Python, nelle prossime lezioni vedremo come utilizzare i metodi delle classi.
Alcuni link utili
Indice tutorial sul linguaggio Python
Operazioni con i file in Python
Introduzione ai dizionari in Python
Quali sono i metodi delle liste
Memorizzare dati di input in un file di testo