Ú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
- 3D nyomtatás
- Bemutatkozott a Silent Hill: Townfall
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Intel Core i7-5xxx "Haswell-E/EP" és i7-6xxx "Broadwell-E/EP" (LGA2011-v3)
- exHWSW - Értünk mindenhez IS
- Kerékpárosok, bringások ide!
- PlayStation 5
- Xbox Series X|S
- Milyen belső merevlemezt vegyek?
- Autós topik
- További aktív témák...
- Lenovo Thinkpad X220 12.5 HD Intel Core i5 2.5 8GB 250GB SSD + dokkoló
- iPhone 15 Plus 128GB Független/1-3 hónap gar./Akku 90%/p4757
- SilentiumPC Armis AR5X TG RGB (Igény esetén táppal, vízhűtővel)
- Samsung Galaxy S25 512GB 3 év gyári garancia
- iPhone 16 Pro Max 256GB White Titanium Karcmentes állapotban!
- Használt Artfone A400 4G Senior mobiltelefon / 12 hó jótállás
- LG 55QNED823RE / QNED / 55" - 140 cm / 4K UHD / 120Hz & 4ms / HDR Dolby Vision / FreeSync + HDMI 2.1
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB DDR5 RAM RTX 5070 12GB GAMER PC termékbeszámítással
- MikroTik CCR2116-12G-4S+
- GYÖNYÖRŰ iPhone 13 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4447, 100% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


