Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
Longeye
#3008
üzenetére
Ezt a problémát többféleképpen is meg lehetne oldani.
A célravezető megközelítésszerintem általában az, hogy az osztály egy létező "fizikai" entitásnak a leképezése. Tehát szerintem a diák (Diak néven: Pythonban illik CamelCase-el írni az osztályneveket) pont, hogy alkalmas osztálynak. Ha nem akarsz metódust, csak adattárolást, akkor mondjuk lehetne NamedTuple is osztály helyett, de aztán később még rájöhetsz, hogy mégis kéne metódus, szóval én maradnék az osztálynál. Ha már mindenáron (főleg) adatokat akarsz, akkor olvass utána a Dataclass-oknak. Így egyszerűben adhatsz hozzá további attribútumokat, például, hogy mikor kezdte a sulit, éppen beteg-e stb.
Én viszont olyan osztályt nem csinálnék, hogy "diákok", meg úgy általában többes számban írt entitások. Ezeket inkább Diák-ok listájaként tárolnám. Ha mindenképpen csoportot szeretnél, metódusokkal, akkor inkább legyen a neve Csoport, Osztály, esetleg Iskola, vagy valami általános gyűjtőfogalom. Itt viszont nem úgy "tárolnám be" a diákokat, ahogy te tetted, hanem magát a példányosított Diák objektumot "adnám oda". Ha type hintet is használsz, akkor a fejlesztőeszköz fel fogja ajánlani a megfelelő attribútumokat és metódusokat. A példáddal:
from dataclasses import dataclass@dataclassclass Diak:om: intnev: strclass Osztaly(object):def __init__(self):self.diakok= []def uj_diak(self, diak: Diak):self.diakok.append(diak)A diákok hozzáadó függvényét amúgy így is csinálhatod (a te példád alapján):
def ujdiak(self, datum, *args):self.lista.append(diak(*args))Ezzel a módszerrel mindegy, hogy a "diak" osztálynak éppen mennyi paramétere van, mindet átadja a konstruktornak.
Új hozzászólás Aktív témák
- League of Legends
- Hegesztés topic
- Milyen TV-t vegyek?
- Allegro vélemények - tapasztalatok
- exHWSW - Értünk mindenhez IS
- The Division 2 (PC, XO, PS4)
- AMD Ryzen 9 / 7 / 5 10***(X) "Zen 6" (AM5)
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- sziku69: Fűzzük össze a szavakat :)
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- iPhone 15 Pro Max 256GB Black Titanium Megkímélt, gyári állapot!
- TUF F17 FX707VU 17.3 FHD IPS i7-13620H RTX 4050 16GB 1TB NVMe magyar vbill gar
- Intel Core i7-7700K 4.2GHz (8M Cache, up to 4.50 GHz) LGA1151 Processzor
- Samsung Galaxy S22 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- XFX RX 9070 XT 16GB GDDR6 MERCURY OC Gaming Edition with RGB - Gari 2029.01.14. -ig - Eladó!
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I7 4770K / GTX 1060 6GB /16GB RAM /250SSD + 500GB SSHD
- Azonnali készpénzes AMD Radeon RX 7000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- BESZÁMÍTÁS! LG 24MK600M FHD IPS 75Hz 5ms monitor garanciával hibátlan működéssel
- Új MSI 15 Katana FHD IPS 144Hz i7-13620H 10mag 16GB DDR5 1TB SSD Nvidia RTX 4060 8GB Win11 Garancia
- Amazon Kindle 10th Generation ébresztős tok
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
