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 | 2773 (1003) | rnla1973 |
» | Težava pri pogoju razredu [Python]Oddelek: Programiranje | 805 (599) | wungad |
» | Python - težava s slovarji - vnosOddelek: Programiranje | 1294 (1116) | RatedR |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1935 (1535) | ktka |
» | [Python]Naloga z razredi in dedovanjemOddelek: Programiranje | 1147 (899) | ktka |