anche se la classe crostata non ha il metodo(funzione propria di una classe) getGusto, derivando da Torta eredita tutti i suoi metodi.
Crostata e Torta sono classi
c1 è un oggetto Crostata
getGusto è un metodo di Torta, quindi ance di Crostata.
il metodo __init__ è più particolare, è il costruttore(un metodo che parte in automatico appena crei l'oggetto.) infatti se io metto dei parametri alla chiamata
(c1=Crostata("cigliegia",5)),
questi sono dichiarati presso __init__,
(def __init__(self,gusto=cioccolato,righe)
non all'inizio della classe, dova al limite metto la classe da cui eredita questa.
class Crostata(Torta):
quindi:
Codice sorgente - presumibilmente Python |
class Crostata(Torta): tra parentesi la classe genitore def __init__(self,gusto=cioccolato,righe): argomenti da dare alla self.gusto=gusto alla costruzione dell'oggetto self.righe=righe
|
self invece è se stesso, riferito all'oggetto.
per farti capire, le persone dicono io, io ho due braccia.
l'oggetto persona dice self.braccia=2
Codice sorgente - presumibilmente Python |
class Persone: def __init__(self): self.braccia=2 braccia=5
|
qual è la differenza?
Codice sorgente - presumibilmente Python |
class Persone: def __init__(self): self.braccia=2 braccia=5 x=Persone() print x.braccia 2 print braccia 5
|
self lo devi mettere come primo parametro di ogni metodo, e verrà inviato in automatico:
Codice sorgente - presumibilmente Python |
class ciao: def bla(self): pass def miao(self): self.bla() per richiamare un metodo da dentro la classe si usa self self.bla("buongiorno")
|
la prima chiamata è giusta, la seconda ti darà un errore per il fatto che hai passato al metodo 2 parametri.
ora leggi il capitolo delle classi qui:
http://www.python.it/doc/Howtothink/HowToThink_ITA.pdf
così capirai bene l'uso degli oggetti e dei metodi.
spero di essere stato chiaro a spiegare!
ciao!