30/03/11 13:03
Il Totem
C'era una domanda molto simile nella sezione java. Prova a fare una ricerca.
aaa
11/05/11 12:49
per esempio:
tu hai la classe torta: è lo stampino possiamo dire, da li tu puoi o fare una torta con la forma al cioccolato o alla marmellata dello stampino o creare una classe crostata che è una torta, ma con qualcosa i più.
ora ti faccio l'esempio:
questa è una banale torta:
posso anche creare una crostata così:
ora:
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:
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
qual è la differenza?
self lo devi mettere come primo parametro di ogni metodo, e verrà inviato in automatico:
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:
python.it/doc/Howtothink/…
così capirai bene l'uso degli oggetti e dei metodi.
spero di essere stato chiaro a spiegare!
ciao!
tu hai la classe torta: è lo stampino possiamo dire, da li tu puoi o fare una torta con la forma al cioccolato o alla marmellata dello stampino o creare una classe crostata che è una torta, ma con qualcosa i più.
ora ti faccio l'esempio:
class Torta: nome della classe def __init__(slef,gusto=cioccolato): se un parametro è eguagliato a una cosa self.gusto=gusto è il valore di default def getGusto(self): return self.gusto
questa è una banale torta:
cioc=Torta() mar=Torta("marmellata alle prugne")
posso anche creare una crostata così:
class Crostata(Torta): def __init__(self,gusto=cioccolato,righe): self.gusto=gusto self.righe=righe
ora:
c1=Crostata("cigliegia",5) ok c2=Crostata() no, la variabile righe la devo dare c1.getGusto() cigliegia
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:
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
class Persone: def __init__(self): self.braccia=2 braccia=5
qual è la differenza?
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:
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:
python.it/doc/Howtothink/…
così capirai bene l'uso degli oggetti e dei metodi.
spero di essere stato chiaro a spiegare!
ciao!