Metodi delle classi in Python

In questa lezione studieremo come utilizzare i metodi delle classi in Python.

Ad ogni metodo, come già abbiamo visto nelle lezioni precedente, viene innanzitutto passato il parametro self che rappresenta l’oggetto stesso, ma possiamo passare altri parametri.

Riprendiamo l’esempio della lezione precedente in cui abbiamo definito una classe Student con gli attributi name, lastname ed age.

Metodi delle classi in Python – primo esempio

Aggiungiamo alla classe Student un metodo che serve semplicemente a stampare la scheda di ciascun studente.

Ecco dunque una possibile implementazione:



class Student:
    def __init__(self, name, lastname, age):
        self.name = name
        self.lastname = lastname
        self.age = age

    def stampa_studente(self):
        return f"Studente:nNome:{self.name}nCognome:{self.lastname}nAge:{self.age}"

Abbiamo realizzato il metodo stampa_studente tramite il quale ritorniamo i dati dello studente, così, diversamente a ciò che abbiamo realizzato nell’esempio precedente, basterà richiamare questo metodo per stampare tutti i dati dello studente.

L’unico parametro che abbiamo passato al metodo stampa_studente è self, ma come già detto potremmo passare altri parametri.

Adesso, dopo aver importato la classe Student, creiamo delle istanze di esempio e stampiamo i dati utilizzando il metodo stampa_studente.



from Student import *

student1 = Student("Nick", "Rossi", 23)
student2 = Student("Janet", "Verdi", 24)

print(student1.stampa_studente())
print(student2.stampa_studente())

Metodi delle classi in Python – secondo esempio

Realizziamo un secondo esempio in cui definiamo una classe auto con attributi e metodi.

Come attributi inseriamo solo la marca, la cilindrata e le porte. Poi aggiungiamo un semplice metodo immatricolazione che serve ad inserire la targa dell’auto.

Ecco dunque una possibile implementazione:



class Auto:
    def __init__(self, marca, cilindrata, porte):
        self.marca = marca
        self.cilindrata = cilindrata
        self.porte = porte

    def immatricolazione(self, targa = 0):
        self.targa = input("Inserisci la targa")
        return self.targa

Salviamo poi il file con il nome di ‘Auto.py‘.

In un altro file richiamiamo la classe e definiamo un’istanza.

Stampiamo la marca dell’auto. Poi, quando richiamiamo il metodo immatricolazione ci verrà richiesto di inserire la targa dell’auto. La stampiamo utilizzando print.

Ecco quindi il codice di esempio:



from Auto import *

auto1 = Auto("Fiat", 90, 5)

print(auto1.marca)
print("La targa dell'auto: ", auto1.immatricolazione())

Conclusioni

In questa lezione abbiamo utilizzando dei semplici metodi delle classi in Python, nelle prossime lezioni approfondiremo questo argomento.

Alcuni link utili

Indice tutorial sul linguaggio Python

Operazioni con i file in Python

Introduzione ai dizionari in Python

Funzione lambda in Python

Utilizzare Plot di Matplotlib

Quali sono i metodi delle liste

Memorizzare dati di input in un file di testo

Continua la lettura su: https://www.codingcreativo.it/metodi-delle-classi-in-python/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Articoli Correlati

Classi in Python

In questa lezione svilupperemo alcuni esempi di classi in Python, al fine di consolidare quanto appreso nelle lezioni precedenti.Classi in Python – primo esempioSviluppiamo 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 = NickLastname = RossiAge = 23Stiamo 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 opzionalePer 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 = NickLastname = RossiPossiamo 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,)

ConclusioniIn questa lezione abbiamo studiato alcuni esempi di classi in Python, nelle prossime lezioni vedremo come utilizzare i metodi delle classi.Alcuni link utiliIndice tutorial sul linguaggio PythonOperazioni con i file in PythonIntroduzione ai dizionari in PythonFunzione lambda in PythonUtilizzare Plot di MatplotlibQuali sono i metodi delle listeMemorizzare dati di input in un file di testoChe cos’è il machine learningMachine Learning in Python

Lambda in Python

Studiamo le funzioni lambda in Python, ovvero le funzioni anonime.Nelle precedenti lezioni abbiamo visto come creare delle funzioni utilizzando la parola chiave def seguita dal nome della funzione e dagli argomenti se ce ne sono.Al contrario la funzione lambda non ha un nome, ma solo gli argomenti e un’unica espressione di calcolo.La sintassi della funzione lambda in Python è dunque la seguente:lambda argomenti: espressioneEsempi sulla funzione lambda in PythonFacciamo alcuni esempi per capire meglio il funzionamento.Come primo esempio costruiamo una funzione lambda utile per calcolare il cubo di un numero:
f_cube = lambda x : x * x * x
print(f_cube(3))
La stessa funzione utilizzando def si poteva scrivere in questo modo:

def f_cube(x):
return x * x * x

print(f_cube(3))
Il risultato è chiaramente lo stesso.Possiamo anche scrivere in maniera molto compatta in questo modo:

print((lambda x: x * x * x)(3))

Più argomenti nella funzione lambda in PythonSi possono inserire anche più argomenti, separandoli da virgole. Facciamo un esempio con una funzione che calcola l’area di un rettangolo.

f_area = lambda x, y : x * y
print(f_area(4,5))

#in maniera compatta
print((lambda x, y: x*y)(4,5))

Valutare un’espressione BooleanaPossiamo anche valutare un’espressione booleana.Prendiamo ad esempio in considerazione un numero e stabiliamo se è pari oppure dispari.

f_even = lambda x : x % 2 == 0
print(f_even(8))
print(f_even(9))

L’output prodotto sarà dunque questo:TrueFalsePerchè usare la funzione lambda in PythonSicuramente uno dei motivi per cui viene utilizzata è quello di risparmiare righe di codice, migliorandone la leggibilità. Quando infatti devo usare una funzione per un tempo breve, non serve definirla.Inoltre uno dei campi maggiori di utilizzo è quando si vuole passare una funzione come argomento di un’altra funzione.Vedremo molto spesso le funzioni lambda utilizzare con le funzioni map() o filter() di Python.Facciamo un primo esempio utilizzando filter():
list_number = [11,8,4,5]

new_list = list(filter(lambda x: x%2 == 0, list_number))

print(new_list)

In questo caso l’output prodotto sarà questo: [8, 4]Oppure possiamo anche utilizzare map().
list_number = [11,8,4,5]

new_list = list(map(lambda x: x%2==0, list_number))

print(new_list)

L’output prodotto sarà questo: [False, True, True, False]La lista sarà popolata con i valori booleani.Potremmo anche utilizzare un ciclo for in:
list_number = [11,8,4,5]

new_list = [even for even in list_number if even %2 ==0]

print(new_list)

Infine possiamo aggiungere che l’utilizzo della funzione lambda in Python è particolarmente indicato quando si lavora con alcune librerie, come ad esempio Pandas, Numpy, ecc.Invece non si può utilizzare quando ad esempio vogliamo eseguire più operazioni indipendenti nell’ambito di una funzione. O ancora quando ho bisogno di scrivere istruzioni su più righe.Alcuni link utiliIndice tutorial sul linguaggio Python1 – Introduzione al linguaggio Python2 – Le variabili3 – Operatori aritmetici e di assegnazione4 – Stringhe5 – Casting6 – Input e print7 – Primi esercizi in Python8 – Errori in Python

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000