Forum » Programiranje » [python] drevesa
[python] drevesa
memnon ::
zivjo, imam sicer preprosto nalogo iz dreves ki pa mi povzroča kar nekaj tezav.
Dan imam razred drevo, ki predstavlja dvojisko drevo:
razredu moram dodati metodo, ki vrne vsoto vseh stevil v drevesu. jaz sem napisal:
ampak to ne dela. Napaka, ki jo dobim je: AttributeError: 'Drevo' object has no attribute 'vsota'.
hvala za pomoč.
Dan imam razred drevo, ki predstavlja dvojisko drevo:
class Drevo:
def __init__(self, *args, **kwargs):
if args:
self.prazno = False
self.vsebina = args[0]
self.levo = kwargs.get('levo', Drevo())
self.desno = kwargs.get('desno', Drevo())
else:
self.prazno = True
def __repr__(self, zamik = ''):
if self.prazno:
return 'Drevo()'.format(zamik)
elif self.levo.prazno and self.desno.prazno:
return 'Drevo({1})'.format(zamik, self.vsebina)
else:
return 'Drevo({1},\n{0} levo = {2},\n{0} desno = {3})'.\
format(
zamik,
self.vsebina,
self.levo.__repr__(zamik + ' '),
self.desno.__repr__(zamik + ' ')
)
def __eq__(self, other):
return ((self.prazno and other.prazno) or
(not self.prazno and not other.prazno and
self.vsebina == other.vsebina and
self.levo == other.levo and
self.desno == other.desno))razredu moram dodati metodo, ki vrne vsoto vseh stevil v drevesu. jaz sem napisal:
def vsota(self):
if self.prazno==True: return 0
else:
vsota=self.vsebina+vsota(self.levo)+vsota(self.desno)
return vsota
ampak to ne dela. Napaka, ki jo dobim je: AttributeError: 'Drevo' object has no attribute 'vsota'.
hvala za pomoč.
Genetic ::
Sicer ne govorim Pythona, ampak namesto
vsota=self.vsebina+vsota(self.levo)+vsota(self.desno)
daj
vsota=self.vsebina+self.levo.vsota+self.desno.vsota
Hm, pa se popravek: vsota uporabljas kot ime metode in kot vmesno variablo, ki ni deklarirana.
Naredi tako:
return self.vsebina+self.levo.vsota+self.desno.vsota
vsota=self.vsebina+vsota(self.levo)+vsota(self.desno)
daj
vsota=self.vsebina+self.levo.vsota+self.desno.vsota
Hm, pa se popravek: vsota uporabljas kot ime metode in kot vmesno variablo, ki ni deklarirana.
Naredi tako:
return self.vsebina+self.levo.vsota+self.desno.vsota
Zgodovina sprememb…
- spremenil: Genetic ()
memnon ::
hvala, ampak se vedno ne dela.
sedaj imam takole:
sedaj imam takole:
def vsota(self):
if self.prazno==True: return 0
else:
return self.vsebina+self.levo.vsota()+self.desno.vsota() Zgodovina sprememb…
- spremenil: memnon ()
Spura ::
In kje imas ti to funkcijo vsota? Aja vidim da imas kot dodatek. Seveda, ce si jo deklariral kot metodo brez parametrov.
Zgodovina sprememb…
- spremenil: Spura ()
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | python-rabim pomočOddelek: Programiranje | 3020 (1250) | rnla1973 |
| » | Težava pri pogoju razredu [Python]Oddelek: Programiranje | 954 (748) | wungad |
| » | Python - težava s slovarji - vnosOddelek: Programiranje | 1489 (1311) | RatedR |
| » | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 2225 (1825) | ktka |
| » | [Python]Naloga z razredi in dedovanjemOddelek: Programiranje | 1334 (1086) | ktka |