Hónap: 2025. február

Hogyan írjunk felül egy alaposztálybeli tulajdonságot (property) egy alosztályban?

A tulajdonság (property) egy olyan osztályattribútum, amelynek értéke egy speciális, property típusú, ú.n. leíró (descriptor) objektum. Ennek működése a normál attribútumokhoz képest különleges, mert attól függően, hogy ezen osztályattribútumra vonatkozóan értékkikérési vagy értékadási műveletet kezdeményezünk, az értékkinyerést végző (getter) vagy az értékadást megvalósító (setter) metódusok fognak lefutni. Ezeket a tulajdonság létrehozásához biztosítani kell. A fentiek …

Hogyan írjunk felül egy alaposztálybeli tulajdonságot (property) egy alosztályban? Read More »

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 4.rész

Az előző bejegyzésekben fokozatosan fejlesztettük a közlekedési tiltó táblákat rajzoló programunkat, és ott tartunk, hogy ki tudjuk rajzolni a „Mindkét oldalról behajtani tilos” táblát, valamint ezen tábla osztályára alapozva, abból örökölve, egy utódosztályt definiáltunk, amiből elő tudunk állítani különböző sebességkorlátozó táblákat. A létrejövő táblák méretét az egérgörgő forgatásával vagy bizonyos billentyűkombinációkkal változtatni is tudjuk. Láttuk …

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 4.rész Read More »

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 3.rész

Az előző bejegyzésben odáig jutottunk a közlekedési tábla rajzoló programunk fejlesztésében, hogy a ProhibitorySign osztály példánya – amely egyben egy konkrét KRESZ tábla is – reagál az egérgörgővel vagy bizonyos billentyűkombinációkkal kiváltott eseményekre, amelyek hatására a kirajzolt tábla mérete változtatható. Most innen lépünk tovább, és egy osztályt fogunk készíteni, amelyek példányai olyan tiltó táblák, amelyek …

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 3.rész Read More »

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 2.rész

Folytatjuk az előző bejegyzésben elkezdett, közlekedési tiltó táblákat rajzoló program továbbfejlesztését azzal, hogy egér és billentyűzet eseményeket, és ezekhez rendelt eseménykezelőket határozunk meg, amelyek hatására a táblák méretét arányosan növelni vagy csökkenteni tudjuk. Az eseménykezelő olyan egyparaméteres hívható objektum (pl. függvény vagy metódus), amely az esemény bekövetkeztekor lesz meghívva és argumentumként egy eseményobjektumot kap, amely …

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 2.rész Read More »

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 1.rész

Ebben a bejegyzésben olyan program kidolgozását kezdjük el, amellyel közlekedési jelzőtáblákat – konkrétabban tiltó táblákat – jeleníthetünk meg grafikus felhasználói felületen. Azért választottuk e KRESZ táblákat, mert elég változatosak, viszont van közös vonásuk, hogy mindegyik kör alakú egy piros szegéllyel. Az egyes táblák a tábla közepén levő tartalomban térnek el, amely lehet szám, szöveg (pl. …

Hogyan készítsünk KRESZ táblákat rajzoló programot? – 1.rész Read More »

Szükséges-e osztályok definiálásával foglalkozni?

Aki a Python alapjait már ismeri, annak nyelvi elemeivel már találkozott, tapasztalhatja, hogy nagyon sok beépített függvény áll rendelkezésre, valamint a saját igényeinkhez illeszkedő függvények is definiálhatók. E függvénydefiníciók változatos formában tehetők meg. Gondoljunk csak például a beágyazott függvényekre, a lambda függvényekre, a parciális függvényekre, dekorátorokra, valamint a generátor- és closure függvényekre. Ez utóbbiak ráadásul …

Szükséges-e osztályok definiálásával foglalkozni? Read More »

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 3. rész

Az előző két bejegyzésben (itt és itt) sorozat típusú konténer egyéni osztályát definiáltuk, amely az alapvető kritériumok teljesítése mellett képes a szeletképzésre, valamint egy másik, ugyanilyen típusú sorozatkonténer elemeivel egy új, összefűzött sorozat előállítására. Az osztályunk így is használható, de maradt még egy műveletcsoport, amit érdemes lehet implementálni. Ez pedig nem más, mint az összehasonlító …

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 3. rész Read More »

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 2. rész

Az előző bejegyzésben sorozat típusú konténer egyéni igényekre szabott osztályát definiáltuk, amely a sorozat típusú konténerek alapvető kritériumait teljesíti. Most ezt az osztályt fejlesztjük tovább úgy, hogy képes legyen a szeletképzésre (slicing), valamint egy másik, ugyanilyen típusú sorozatkonténerrel való összefűzésre (concatenation). Ahogy az előző bejegyzésben említettük, a szeletképzés képességét a __getitem__ metódus megfelelő implementálásával lehet …

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 2. rész Read More »

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 1. rész

Az legutóbbi bejegyzésben sorozat típusú konténer elemeinek körkörös léptetéséről, más szóval forgatásáról volt szó, ahol több függvényt is készítettünk erre a célra. Ezek megvalósítása abban különbözött, hogy milyen előfeltételt kell, hogy teljesítsen az argumentumként átadott sorozat típusú konténer. Ilyen kritérium volt, hogy a sorozatobjektumra értelmezett-e a szeletképzés és az összefűzés művelete-e vagy sem, vagy hogy …

Hogyan definiáljunk saját sorozat típusú konténerobjektumot? – 1. rész Read More »