Nem fut le a Python programom. Mi lehet a baj?
class termek:
def __init__ (self, nev, kod, ar):
self.nev = nev
self.kod = kod
self.ar = 4000
class kedvezmeny_kiszamolo:
def kedvezmeny_levonasa (ar, levonas = 1000):
return f'{ar} - {levonas}'
termek1 = termek ('Tok', 'T01', 4000)
print ('Termék neve:', termek1.nev)
print ('Kód:', termek1.kod)
print ('Kedvezmény nélküli ár:', termek1.ar)
print ('Kedvezményes ár:', termek.kedvezmeny_kiszamolo)
Szóval az a baj, hogy a legutolsó sorra értelmetlen kódsorokat kapok. Már a múltkor is találkoztam ezzel, de ott meg tudtam oldani. Itt nem. Ezt kapom:
Kedvezményes ár: <class '__main__.termek.kedvezmeny_kiszamolo'>
Nem ilyesmit akartál?
class termek:
def __init__ (self, nev, kod, ar):
self.nev = nev
self.kod = kod
self.ar = 4000
def kedvezmeny_levonasa (self,levonas=1000):
return self.ar-levonas
termek1 = termek ('Tok', 'T01', 4000)
print ('Termék neve:', termek1.nev)
print ('Kód:', termek1.kod)
print ('Kedvezmény nélküli ár:', termek1.ar)
print ('Kedvezményes ár:', termek1.kedvezmeny_levonasa())
Ez a sor felesleges/rossz: self.ar = 4000
Minek adod meg az árat, ha az ár az osztályban hard-coded?
Ebben a kifejezésben a termek változó még nincs inicializálva:
print ('Kedvezményes ár:', termek.kedvezmeny_kiszamolo)
Ez esetleg nem termek1 akar lenni?
En valami ilyesmit csinálnék: [link]
Mondjuk ebben az esetben az öröklés nem indokolt. Lehet egyszerűbben is: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!