Ú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
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Épített vízhűtés (nem kompakt) topic
- AMD vs. INTEL vs. NVIDIA
- Windows 11
- Renault, Dacia topik
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Milyen Android TV boxot vegyek?
- VR topik
- Xiaomi 14T Pro - teljes a család?
- További aktív témák...
- EIZO FlexScan EV2495 Made in Japan! 1920x1200 IPS USB-c állítható magasság, PIVOT 2024-04 gyártás!
- 10 DB Lenovo ThinkPad Laptop X13 G2 G3, T14 G3 G5, T14s G4 G6, P15 G1 G2
- RAM memória Crucial Pro OC Gaming 16GB DDR5 6400MHz CL32 Black - bontatlan, új
- Dell Latitude 7420, 14" FHD IPS kijelző, i7-1185G7 CPU, 16GB DDR4, 256GB SSD, W11, Számla, 1 év ga
- Corsair 64GB KIT DDR4 3200 MT/s CL16 Vengeance LPX - bonatlan, új
- Spiegen Rugged Armor Pro tok PS Portal-hoz
- 134 - Lenovo Legion Pro 7 (16IRX8H) - Intel Core i9-13900HX, RTX 4090 - 3 év garancia
- HIBÁTLAN iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3818
- Xiaomi Watch S4, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2998, 100% Akksi
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

