Informatika2-2015/Eloadas 6 Python-6 Objektumok definialasa
Objektumok definiálása
Tuple, szótár használata
A mai óra folyamán ezzel a példakóddal fogunk foglalkozni. Ez lehetne pl. egy program része amit egy hallgató írt hogy segítsen összeállítani az órarendjét:
(Megjegyzés: Az objektumorientált programozás, a kivételekkel való hibakezeléshez hasonlóan, olyan technológia, amelynek az előnyei igazán csak nagyobb programok írásánál jönnek elő. Ilyen kis példánál el kell túlozni a problémák nagyságát ahhoz hogy megindokoljuk ezen technikák használatát, de attól még hogy itt esetleg a megoldás bonyolultabbnak tűnik mint a probléma, nagyobb programoknál ugyanez a megoldás már jobb arányt produkál.)
Nézzük csak, mi történik, ha szeretném külön számontartani, hogy az óraszámból mennyi olyan, ahol jelenlétet ellenőriznek. Az lenne a logikus, ha a tuple-ben azössz óraszám mellett lenne. Ezért más kódot is módosítani kell, míg végül valami ilyesmire jutunk:
A fontos dolog az, hogy megváltoztattam hogy mit tárolok el egy-egy tárgyról, és emiatt meg kellett változtatnom az osszkredit függvényt, pedig a krediteket így is, úgy is eltároltam. Ebből látható, hogy az ilyen tuple-ös (vagy listás) megoldás nem fenntartható, ha valamit változtatni akarok a tárolási módszeren, akkor annak következtében mindenhol a kódban változtatnom kell, ahol ezeket az adatokat használom.
Egyik alternatíva szótárban tárolni a dolgokat. Ekkor a lista minden eleme egy szótár, ami pontosan ugyanazokat a kulcsokat tartalmazza:
Ez nem egy rossz megoldás,