In Python una variabile può diventare un oggetto di tipo diverso. Vengono chiamati “literals” le strutture di dati più complessi come le tuple, liste o dizionari.
In queto esempio:
citta=’Roma’
Città è un’istanza della classe string, quindi una classe viene definita con attributi, cioè delle caratteristiche e metodi che sono delle azioni. Il termine oggetto indica un“elemento” con attributi e metodi. Una classe è una descrizione di un oggetto in modo astratta, infatti rappresenta il raggruppamento di oggetti in un determinato insieme, infine l’istanza è la realizzazione effettiva di un oggetto di una classe.
Gli attributi delle classi sono definibili per mezzo di attribuzione, anche se di solito si usa un metodo costruttore, cioè “ __init__”. Il metodo costruttore __init__ è utilizzato da Python nel momento in cui deve inizializzare lo stato di un oggetto in una classe, può indicare anche la definizione degli attributi.
Es.
Class nomeclasse():
def __init__(self,naz,Nome=””,Cognome=””):
self.nome = Nome
self.cognome = Cognome
self.nazionalità = naz
Self è il futuro nome della potenziale istanza della classe.
Per questo è obbligatorio metterlo come parametro nelle parentesi tonde di ogni metodo.
Il metodo definito come costruttore non fa alcun calcolo, deve solo delimitare gli attributi della futura istanza, per questo non finisce con un “return”.
È buona norma scrivere gli attributi d’istanza nel metodo “__init__”, mentre gli attributi di classe all’interno.
Per creare una istanza basta mettere un nome per l’oggetto e assegnare allo stesso la classe creata:
numero1 = Moneta()
I metodi di classe sono delle procedure.
I metodi che andremo a creare devono avere come argomento quello inserito prima, il “self”. Il metodo speciale “__str__” permette di costruire la rappresentazione informale di un oggetto in formato stringa.
Esistono gerarchie piramidali, quello che sta in basso eredita le caratteristiche di tutto quello che lo precede. In particolare esistono:
– Parent Class
– Child Class
La child eredita tutti i dati e i metodi della classe parent, inserisce più info e sovrascrive metodi. Per indicare la child basta indicare all’interno di essa(nelle tonde come arg) la classe parent, è possibile inserire più classi padri all’interno di una classe figlio.