Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
#82595328
#1255
üzenetére
Amikor a példádban példányosítod a Ketto osztályt (ez lenne az egyke - lehetnének konzekvensebbek is az elnevezéseid), akkor a következőt kapod: lefut a
Ketto.__init__()függvény, benne értéket kap az egyik példányváltozó. Lesz egyszorzat()nevű metódusod, ami összeszorozza az egyik-et a masik-kal. Vagyis csak szorozná, de az masik nem létezik!A hibát azért kapod, mert a
Ketto._init__()csak két paramétert vár, a self-et (ezt implicit) és az egyik-et, te viszont hármat adtál meg: a self-et, az egyik-et és a masik-at.Amúgy pontosan az történt, amit szerettél volna: a Ketto init-je felülírta az Egy init-jét. A probléma ott van, hogy előbbiben nem hívod meg a szülő osztály (az Egy)
__init__()metódusát. Írták, hogyEgy.__init__(), de ez nem szerencsés, mert név szerint hivatkozik a szülőosztályra, helyette többnyire a super() az alkalmazandó. A kódod helyesen:class Egy():
def __init__(self, egyik=1, masik=2):
self.egyik = egyik
self.masik = masik
def szorzat(self):
return self.egyik * self.masik
class Ketto(Egy):
def __init__(self, egyik):
super().__init__(egyik=egyik)
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Ketto(a)
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())A példányosításnál csak az a paramétert írtam oda. A Ketto init függvénye meghívja az Egy init függvényét, de csak egy értékkel (egyik), a masik értéke az
Egy.__init__()-ben megadott alapértelmezett 2-es, emiatt a végén kiírt szorzat 2*a lesz, a b-től függetlenül. -
axioma
veterán
válasz
#82595328
#1255
üzenetére
Varj, most a Ketto-nek a peldanyositasaval van gond, mert a kod szerint o egy komplett Egy-et var.
Csereld ki a reklamalt sortegyke = Ketto(Egy(a, b))-re, es eltunik a hibauzenet.
De!
Ez igy onmagaban nem jo. Mert a Ketto nem fogja a _sajat_egyik, masik-aban latni az Egy peldanyban meglevo ertekeket. Ahhoz ki kene szedned az orokolt valtozokba... az az ossel inicializalas ertem hogy miert jutott eszedbe, de nagyon nem jo, felvettel egy uj member valtozot, aminek semmi koze a mukodeshez, mert az az orokolt valtozok alapjan megy.
Új hozzászólás Aktív témák
- iOS alkalmazások
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Építő/felújító topik
- Parfüm topik
- Milyen alaplapot vegyek?
- Formula-1
- Spórolós topik
- Gyárátalakításokkal kaszálna nagyott a memóriapánikból a Samsung
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xiaomi 17 Ultra - jó az optikája
- További aktív témák...
- Samsung Galaxy Watch 5 Pro
- Erős Gamer PC i7-9700K RTX 3060 12GB 16GB Trident Z 850W Gold NZXT H510 Flow
- iPad Pro 11" 2018 256GB Wifi 92% akku Csere is
- Apple iMac 21,5" 2015 Late / 8GB DDR3 / 1TB HDD / Bill+Egér 6 hó garancia, számlával!
- Honor MagicPad 2 12.3 " Elképesztően jó tablet , újszerű , 1,5 év Garanciával !
- BESZÁMÍTÁS! Gigabyte B450M R5 2600X 16GB DDR4 512GB SSD GTX 1650 4GB ZALMAN T3 Plus Deepcool 400W
- iPhone 15 Pro Max 512GB 87% Esim-es verzió (3hónap Garancia) Kijelzőn pici folt!
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- Lenovo L13 Core I3-10110U / 4GB DDR4 / LAPTOP 1
- 18 éve! Billentyűzet magyarítás magyarosítás. Festés vagy lézerezés és egyebek! 3 lehetőség is van.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
