- Táncolni még nem tud, de stabilan áll az Android 17 a lábán
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Samsung Galaxy Watch7 - kötelező kör
- Xiaomi 17 Ultra - jó az optikája
- Xiaomi 15 - kicsi telefon nagy energiával
- Oppo a Vivónak: hagyd otthon a telekonvertert!
- Apple iPhone 17e – mágnesek ereje
- Okosóra és okoskiegészítő topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Apple iPhone 17 Pro Max – fennsík
Ú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.
Új hozzászólás Aktív témák
- Linux kezdőknek
- Táncolni még nem tud, de stabilan áll az Android 17 a lábán
- Arc Raiders
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Anime filmek és sorozatok
- Hosszú premier előzetest kapott az Arknights: Endfield
- Bittorrent topik
- Villanyszerelés
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- További aktív témák...
- Intel Core Ultra 7 265KF RX9060XT minőségi PC teljes garancia
- Apple iPhone 16 Pro 128GB 94%-os akku
- Lenovo X1 Yoga gen. 6. // i7-1185g7 // 32GB // 512GB // ÚJSZERŰ!!! // ÚJ ÁRA 1.408.990.-Ft!!!!!!
- Lenovo ThinkPad W541,15.6,FHD,i7-4810MQ,32GB DDR3,256GB SSD,K1100 2GB VGA,WIN10
- Samsung Galaxy Tab S10 Ultra 5G 12/256 2028.09.03-ig garancia
- AKCIÓ! LENOVO ThinkPad P15 Gen1 - i7 10850H 16GB DDR4 512GB SSD Quadro T1000 4GB WIN11
- RÓZSASZÍN! -20%!!! MACBOOK NEO!!!! - MAGYAR BILLES! - HAJNALPÍR AJÁNDÉKKAL!
- Ducky One 3 FULL/TKL/SF/MINI billentyűzetek többféle színben és kapcsolókkal, plusz csuklótámaszok
- Eladó Apple iPhone 12 Mini 64GB fehér / 12 hónap jótállás
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


