Hirdetés
- Motorola Edge 70 Fusion – stílusosan főznek
- Félő, hogy az okosszemüveg a szexuális zaklatók játékszere lesz
- Snapdragon 8 Elite Gen 5 és folyadékhűtés jöhet a RedMagic új gamer táblagépébe
- Nagyobb akkumulátorral jöhet a Motorola Razr 70 Ultra, másban alig változna
- 4G-s verzióban is választható a Tecno Spark 50
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Apple iPhone 17 Pro Max – fennsík
- Félő, hogy az okosszemüveg a szexuális zaklatók játékszere lesz
- Xiaomi 15T - reakció nélkül nincs egyensúly
- AI: tanulj már meg rendesen pózolni, ember!
- iPhone topik
- Telekom mobilszolgáltatások
- Apple iPhone Air - almacsutka
- Google Pixel topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
Új hozzászólás Aktív témák
-
#82595328
törölt tag
válasz
cousin333
#1252
üzenetére
Köszönöm a válaszokat, Igazából egyik sem az, amit szeretnék. Azt hiszem, nem voltam teljesen világos.
Valójában az osztályok egyik előnyét akartam kipróbálni, hogy hogy tudok egy osztályt felhasználva létrehozni egy új osztályt. Azaz a régi osztályt megtartani, de egy új osztállyal kiegészíteni vagy a mostani esetben felülírni a régi osztály attribútumait és metódusait.
Azaz elsőkörben létrehoztam egy osztályt:
class Egy():
def __init__(self, egyik=1, masik=2):
self.egyik = egyik
self.masik = masik
def szorzat(self):
return self.egyik * self.masikEbben ugye van attribútum, és metódus is.
Ezt kiegészítettem egy példányosítással és adatbekéréses értékadással.
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Egy(a, b)A végén pedig kiírattam.
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())Eddig egyszerű volt, és boldogultam is.
Most jönne a feladat, vagyis a problémám.
Szeretném felhasználni az előbb létrehozott osztályt egy másik osztályhoz úgy, hogy az új osztály a régi osztály egy attribútumát felülírja. Aztán a metódust írnám felül, aztán adnék hozzá új attribútumot és metódust.De már az első sem megy, azaz szeretném felülírni az új osztállyal a régi egyik attribútumát, de csak az egyiket.
Alapvetően azt gondoltam, hogy ez tök egyszerű felveszem az egyik attribútumot az új osztályba:class Ketto(Egy):
def __init__(self, egyik):
self.egyik = egyikÉs minden más változatlan.
Azaz a programnak az elgondolásom szerint így kéne kinéznie:
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):
self.egyik = egyik
a = int(input('Adj egy számot!'))
b = int(input('Adj még egy számot'))
egyke = Ketto(a, b)
print ('Egyik = %s' % egyke.egyik)
print ('Masik = %s' % egyke.masik)
print ('Szorzat = %s' % egyke.szorzat())Ez pedig a hibaüzenet:
Traceback (most recent call last):
File "/home/sire/teszte.py", line 16, in <module>
egyke = Ketto(a, b)
TypeError: __init__() takes 2 positional arguments but 3 were givenNem értem mi a baj. Elvileg 2 változóm van.Mindkettő az első osztályból jön, csak az egyiket lecserélem a második osztályból. Ez lenne nekem a logikus. Mit csinálok rosszul, és mi a jó megoldás.
Új hozzászólás Aktív témák
- Samsung Galaxy S24 8/128GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1Év Garanciával!
- Samsung galaxy s21 ultra + watch 3
- Lenovo Thinkpad T14 Gen4 14" FHD+ IPS i7-1365U 16GB 256GB NVMe gar
- Gigabyte G6X9MG 15.6" FHD+ IPS i7-13650HX RTX 4050 16GB 512GB NVMe magyar vbill gar
- Samsung Full HD LED TV (UE32EH5300)
- AKCIÓ! Asrock Fatality Z170 Gaming K4 alaplap garanciával hibátlan működéssel
- AKCIÓ! Samsung Galaxy S23 Ultra 256GB okostelefon garanciával hibátlan működéssel
- Vásárlunk iPhone 12/12 Mini/12 Pro/12 Pro Max
- LG UltraGear 27GR93U-B IPS Monitor! 3840x2160 / 144Hz / 1ms / G-Sync / FreeSync!
- 27% - ACEmagic S3A MiniPC! Ryzen 6900HX 16GB DDR5 / 512GB SSD/ Radeon 680M!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

