Questo articolo aiuterà il lettore a comprendere le classi di base di Python insieme ad alcune applicazioni di base nel mondo reale. Useremo Visual Studio Code come nostro editor di codice. Se non hai installato Visual Studio Code, le istruzioni sono fornite nel primo blog.
Come abbiamo discusso nel primo blog, Python è un linguaggio di programmazione orientato agli oggetti. Ci sono tre frasi che sono molto importanti quando si discute di programmazione orientata agli oggetti in Python. La prima è classe, la seconda è un oggetto, la terza sarebbe l’ereditarietà. Iniziamo con cosa è una classe.
Una classe è un progetto o un programma estensibile che aiuta nella creazione di oggetti. Una classe consiste di comportamento e stato. Il comportamento di una classe è dimostrato attraverso funzioni all’interno della classe che sono chiamate metodi. Lo stato della classe è dimostrato utilizzando le variabili all’interno della classe che sono chiamate attributi.
Una classe può essere inizializzata utilizzando la seguente sintassi.
Una classe in Python è definita utilizzando la parola chiave “class” seguita dal nome della classe. La sintassi di base di una funzione Python è illustrata di seguito.
Per esempio:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Classi_Python" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Crea una funzione # classe Scimmia class classname:
Nota: il nome della classe ha anche le stesse norme della dichiarazione delle variabili.
# prima classe class Animali: pass
Nell’istruzione di codice sopra, abbiamo scritto una classe che svilupperemo ulteriormente nel blog. Come puoi vedere, abbiamo usato la parola chiave “class”.
Vediamo ora come aggiungere componenti alla classe degli animali. Ma prima di ciò, impariamo a conoscere il costruttore “__init__()”. I costruttori sono utilizzati per l’istanza degli oggetti. Qui il __init__() è utilizzato per l’istanza degli oggetti. Il costruttore può essere predefinito con solo self come argomento o parametrizzato con argomenti richiesti.
Ci sono due diversi tipi di attributi, i primi sono variabili di classe e i secondi sono variabili di istanza. Le variabili di classe sono le variabili possedute dalla classe. Inoltre, queste variabili sono disponibili per tutte le istanze della classe. Pertanto, il loro valore non cambierà anche se l’istanza cambia.
# variabili di classe class Animali: type=”mammiferi”
Le variabili di istanza sono le variabili che appartengono alle istanze stesse. Pertanto, cambieranno il loro valore man mano che l’istanza cambia.
# variabili di classe class Animali: def __init__(self, zampe): self.zampe = zampe
Nota: Le variabili di istanza non sono disponibili per l’accesso utilizzando il nome della classe, perché cambiano a seconda dell’oggetto che le accede.
Facciamo un programma che ha sia variabili di classe che di istanza dichiarate.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe
Nel programma sopra, abbiamo usato sia variabili di istanza che di classe. Quindi, queste variabili formano attributi della classe.
Come discusso, il comportamento della classe è definito dai metodi all’interno della classe. Ma prima di entrare nella discussione sul comportamento, dobbiamo iniziare a discutere del parametro “self”, che abbiamo usato nel __init__().
In termini molto semplici, ogni volta che attacchiamo qualcosa a self, significa che la variabile o la funzione appartiene a quella classe. Inoltre, con “self”, è possibile accedere agli attributi o ai metodi della classe.
I metodi di classe sono funzioni all’interno della classe che avranno il loro primo argomento come “self”. Un metodo all’interno della classe è definito utilizzando la parola chiave “def”.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”)
Nel metodo “abbaia” sopra, poiché stiamo usando la variabile nome, che è una variabile di istanza, la stiamo accedendo utilizzando “self” e questa funzione stamperà “bau bau!!!”, solo se il nome fornito all’oggetto è cane.
Abbiamo discusso la maggior parte dei componenti di una classe, ma potresti chiederti come vedere se la classe sta funzionando. La risposta a questo è che a meno che non creiamo un oggetto della classe, non saremo in grado di vedere cosa sta facendo la classe. Ora, definiamo e creiamo un oggetto della classe.
Un oggetto è un’istanza della classe. Una classe è solo un progetto, ma l’oggetto è un’istanza della classe che ha valori reali.
Il codice per definire o creare un oggetto è illustrato di seguito.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”) cane = Animali(“cane”, 4)
Per creare un oggetto, la sintassi è objectname=classname(arguments). Pertanto, qui stiamo dando il nome dell’animale come cane e il numero di zampe come 4. Ora, l’oggetto della classe è creato, il passo successivo è utilizzare l’oggetto per accedere ai suoi attributi. Per accedere agli attributi di una classe utilizzando l’oggetto, ricorda che solo le variabili di istanza possono essere accessibili utilizzando l’oggetto. Le variabili di istanza nella nostra classe sono nome e zampe.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”) cane = Animali(“cane”, 4) print(cane.nome) print(cane.zampe)
Come possiamo vedere, siamo in grado di accedere alle variabili di istanza utilizzando la notazione a punto.
Esploriamo l’output.
#Output cane 4
Per accedere alle funzioni all’interno della classe o ai metodi, utilizzeremo la notazione a punto. L’esempio è illustrato di seguito.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”) cane = Animali(“cane”, 4) print(cane.nome) print(cane.zampe) print(cane.abbaia())
#Output cane 4 bau bau!!!
Nell’esempio sopra, possiamo vedere che stiamo accedendo al metodo di classe “abbaia” utilizzando l’oggetto cane che abbiamo creato. Possiamo vedere che non stiamo usando il parametro “self” negli argomenti della funzione. Questo perché non richiediamo l’uso di “self” al di fuori della classe poiché l’oggetto stesso sta agendo come self.
L’ereditarietà è un processo attraverso il quale gli attributi e i metodi della classe possono essere trasferiti a una classe figlia. La classe da cui la classe figlia eredita è la classe genitore. La sintassi per l’ereditarietà è illustrata di seguito.
#Ereditarietà class genitore: class figlio(genitore):
Dall’illustrazione sopra, possiamo vedere che per la sintassi dell’ereditarietà stiamo posizionando il nome della classe genitore come argomento per la classe figlio. Utilizziamo la classe Animali e creiamo una classe figlio chiamata cane. Questo è illustrato di seguito.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”) class Cane(Animali): def __init__(self, nome, zampe, razza): Animali.__init__(self, nome, zampe) self.razza = razza
Nell’esempio di codice sopra, abbiamo creato una classe cane che estende la classe animali che abbiamo creato prima. Stiamo anche utilizzando i parametri dalla classe Animali utilizzando Animali.__init__(arguments) che ha nome e zampe che saranno ereditati dalla classe cane. Poi stiamo creando un attributo di istanza per la classe cane che è razza.
Ora creiamo un oggetto per la classe cane e accediamo agli attributi e ai metodi della classe animali.
class Animali: type=”mammiferi” def __init__(self, nome, zampe): self.nome = nome self.zampe = zampe def abbaia(self): if self.nome == “cane”: print(“bau bau!!!”) else: print(“non è un cane”) class Cane(Animali): def __init__(self, nome, zampe, razza): Animali.__init__(self, nome, zampe) self.razza = razza pug = Cane("cane", 4, "pug") pug.razza pug.nome pug.zampe pug.abbaia()#Output pug cane 4 bau bau!!! [/code>
Come possiamo vedere dall’output, gli attributi e i metodi della classe genitore vengono accessibili dall’oggetto della classe figlio.
In questo blog, abbiamo coperto alcune basi delle classi in Python. Nel prossimo post del blog tratteremo l’argomento della gestione dei file.
Potresti anche essere interessato al nostro Corso di JavaScript da Principiante ad Avanzato.
Esperto di JavaScript e istruttore che forma i dipartimenti IT. Il suo obiettivo principale è aumentare la produttività del team insegnando agli altri come cooperare efficacemente durante la programmazione.
Che cos'è il software? Quali sono i tipi e i metodi di distribuzione? Rimanendo in…
Presentare e comunicare i risultati della ricerca è probabilmente una delle abilità più cruciali (e…
Sai come creare un ebook? Conosci tutti gli aspetti essenziali del processo di produzione di…
Il marketing sostenibile non è più solo una delle strategie di marketing che puoi adottare…
Recentemente, sono emersi due fenomeni nel mercato del lavoro riguardanti gli atteggiamenti dei dipendenti e…
Come vendere su Pinterest e perché dovresti farlo? Vendere su Pinterest è un altro modo…