Hirdetés
- Munkához is jó lehet a OneXPlayer gaming tabletje
- AMD Strix Haloval érkezik a OneXPlayer erőtől duzzadó mini PC-je
- Félő, hogy az okosszemüveg a szexuális zaklatók játékszere lesz
- Kompakt TUF Gaming alaplappal bővült az ASUS AMD-s palettája
- Nemcsak az ellenfél, a tévéd is kifekszik a Resident Evil fegyvereitől
Ú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
- Warhammer 40.000
- Apple MacBook
- Samsung Galaxy Felhasználók OFF topicja
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Windows 10
- A fociról könnyedén, egy baráti társaságban
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- E-book olvasók
- Óra topik
- Debrecen és környéke adok-veszek-beszélgetek
- További aktív témák...
- Micron 5200 ECO 480 GB 2,5 SATA Enterprise/Datacenter Server SSD
- Komplett gép: i7 12700 - 4.90 Ghz / 32 GB DDR5 / 512 GB NVMe / Win 11 Pro - HP Z2 tower G9
- Asztali PC , i5 9500T , 1660 Super , 16GB DDR4 , 512GB m.2
- Asztali PC , i5 12400F , RX 6600 XT , 16GB RAM , 512GB nVME , 1TB HDD
- iPhone 13 256GB Midnight
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- LÉZEREZÉS! külföldi billentyűzet magyarra kb. 20-30p alatt!
- Lenovo T14s Gen 2 - 14,1" touch, i5 1145 G7, 16GB RAM, 256-512GB SSD, jó akku, számla, 6 hó gar
- AKCIÓ! Sony PlayStation 4 PRO 1TB fekete játékkonzol garanciával hibátlan működéssel
- MacBook felvásárlás!! MacBook, MacBook Air, MacBook Pro
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

