- OLED monitor topic
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- Miért tűntek el ezek a PC-alkatrészek?
- iPad topik
- Milyen nyomtatót vegyek?
- Melyik tápegységet vegyem?
- Kormányok / autós szimulátorok topikja
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen egeret válasszak?
Ú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
- Milyen légkondit a lakásba?
- Napelem
- Mikrotik routerek
- Megkönnyítette az iPhone az androidos átköltözést
- OLED monitor topic
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Packeta
- Milyen okostelefont vegyek?
- iOS alkalmazások
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- További aktív témák...
- Endorfy Full moduláris 750w ATX táp Gold
- XFX Mercury AMD Radeon RX 9070 XT Gaming Edition - 3 év gari
- GMKtec K6 Ryzen 7 7840HS 32GB RAM + 1TB SSD WIN 11 Pro magyar garancia 2028.10.27.-ig
- Samsung C27G55TQWR 27" 2560 x 1440 Quad HD LCD Fekete Monitor Számla + Garancia
- Latitude 9330 2in1 13.3" QHD+ IPS érintő i5-1240U 16GB 256GB NVMe magyarított (lézerezett) vbill gar
- PlayStation 5 FAT DIGITAL + kontroller 6 hó garancia, számlával!
- HUAWEI Watch D2 okosóra
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Lenovo Thinkcentre M70s Gen 4 i5-13500 16gb 512GB UHD Graphics 770+ajándék
- HIBÁTLAN iPhone 14 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3919
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


