Classi e oggetti Python. Parte 9 Corso Python da Principiante ad Avanzato in 11 post sul blog

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.

Classi e oggetti Python – indice:

  1. Classi Python
  2. Classi Python – definizione
  3. Inizializzazione delle classi Python
  4. Scriviamo la nostra prima classe Python
  5. Attributi
  6. Comportamento della classe
  7. Oggetti in Python
  8. Ereditarietà

Classi Python

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.

Classi Python – definizione

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.

Inizializzazione delle classi Python

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.

Scriviamo la nostra prima classe Python

# 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.

Attributi

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.

Comportamento 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__().

Self:

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.

Metodi:

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.

Oggetti in Python

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.

Ereditarietà

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.

Robert Whitney

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.

View all posts →

Robert Whitney

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.

Share
Published by
Robert Whitney

Recent Posts

Che cos’è il software? Tipi e metodi di distribuzione – Crea e vendi prodotti digitali #34

Che cos'è il software? Quali sono i tipi e i metodi di distribuzione? Rimanendo in…

1 hour ago

Come preparare un rapporto di ricerca UX? | Ricerca UX #34

Presentare e comunicare i risultati della ricerca è probabilmente una delle abilità più cruciali (e…

3 hours ago

Come creare un ebook? Aspetti essenziali del processo. – Crea e vendi prodotti digitali #8

Sai come creare un ebook? Conosci tutti gli aspetti essenziali del processo di produzione di…

5 hours ago

Il marketing sostenibile è il futuro? 4 strategie di marketing sostenibile

Il marketing sostenibile non è più solo una delle strategie di marketing che puoi adottare…

6 hours ago

Cos’è il quiet hiring e come è diventato così popolare?

Recentemente, sono emersi due fenomeni nel mercato del lavoro riguardanti gli atteggiamenti dei dipendenti e…

8 hours ago

Come vendere su Pinterest?

Come vendere su Pinterest e perché dovresti farlo? Vendere su Pinterest è un altro modo…

9 hours ago