Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
#82595328
#1250
üzenetére
Most ez lesz belőle, ha lefuttatod:
Traceback (most recent call last):
File "C:\Users\cousi\.spyder-py3\temp.py", line 25, in <module>
print ('Egyik = %s' % egyke.egyik)
AttributeError: 'Ketto' object has no attribute 'egyik'Több probléma is van itt. Az egyik probléma - ami a futtatáskor is látszik -, hogy az egyik nem kap értéket. A másik, hogy a szorzat függvény, ahogy megírtad, két paramétert vár, de nem kapja meg őket (utolsó kódsor). Igaz, nincs is értelmük, mert nem használnád egyiket sem (a self.akármi az mindenhonnan látható, hiszen már átadtad a self-el). A harmadik, hogy csak a Ketto inicializáló függvénye fut le, bár ez így nem feltétlenül hiba, és az egyes probléma megszüntetésével orvosolható.
Két lehetőség közül az első az 1-es és 2-es problémát javítja:
class Egy():
def __init__(self, egyik=1, masik=2):
self.egyik = egyik
self.masik = masik
def szorzat(self, egyik, masik):
return self.egyik * self.masik
class Ketto(Egy):
def __init__(self, egyik, masik):
self.egyik = egyik
self.masik = masik
def szorzat(self):
return self.egyik * self.masik
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Ketto(b, a)
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())A második pedig - némi módosítással - a 2-es és 3-as problémákat orvosolja, amivel az 1-es lesz idejétmúlt:
class Egy():
def __init__(self, egyik=1, masik=2):
self.egyik = egyik
self.masik = masik
def szorzat(self, egyik, masik):
return self.egyik * self.masik
class Ketto(Egy):
def __init__(self, egyik, masik):
super().__init__(egyik, masik)
def szorzat(self):
return self.egyik * self.masik
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Ketto(b, a)
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())A második megoldás inkriminált sorát így is írhatod, hogy legyen értelme is az örökléses példádnak. Ekkor az egyik az mindenképpen 1 lesz.
super().__init__(masik=masik)ui: Nem tiszta, hogy tulajdonképpen mit akartál felülírni mivel...

Tipp: a függvényparaméterek felsorolásánál használj szóközöket, úgy áttekinthetőbb lesz a kód.
Új hozzászólás Aktív témák
- Inno3D GeForce RTX 4070 Ti X3 12G - Karácsonyi akcióban!
- Redragon Kumara K552 RGB Brown Switch magyar billentyűzet
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ÚJ Lenovo Yoga 7 - 14" WUXGA OLED Érintő - Ryzen AI 5 340 - 16GB - 512GB - Win11 - 4 év garancia
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen,MS4120
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
- HP 200W töltők (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


