Hónap: 2023. augusztus

Feltételvizsgálatnál ügyeljünk rá, hogy a None ugyan False igazságértékű, de nem minden None, ami False!

Tegyük fel, hogy egy olyan kétparaméteres függvényt akarunk írni, amelynek törzsében csak akkor fut le egy utasítás, ha az argumentumok egyike sem None. Tudjuk, hogy a None igazságértéke False. Ezért akár az alábbi képen látható első megoldás is eszünkbe juthat. Ez azonban nem jó, mert nem csak a None objektumnak False az igazságértéke, hanem például …

Feltételvizsgálatnál ügyeljünk rá, hogy a None ugyan False igazságértékű, de nem minden None, ami False! Read More »

Van-e még használati jelentősége a sorrendtartó OrderedDict típusnak?

Olykor szükség lehet arra, hogy egy szótárobjektumban az elemek (kulcs-érték párok) megőrizzék a bevitel szerinti sorrendjüket. A dict típusú szótár sokáig nem volt sorrendtartó, helyette a collections modul OrderedDict típusát kellett használni. A Python 3.7 verziótól azonban már a dict is megőrzi az elemek sorrendjét, sőt a Python 3.8 verziótól a reversed() függvénnyel is használható, …

Van-e még használati jelentősége a sorrendtartó OrderedDict típusnak? Read More »

Hogyan definiáljunk felülírásvédett konstansokat?

A kérdés elsőre talán még ellentmondásosnak is tűnhet, hiszen a konstans attól konstans, hogy nem változik az értéke a program futása alatt. Ez elméletben így is van. A gyakorlatban azonban más a helyzet. A Python ugyanis nem biztosít alapban külön típust a konstansok definiálásához. Konstanst létrehozni egy szokványos változóhoz történő értékadással lehet azzal a konvencióval, …

Hogyan definiáljunk felülírásvédett konstansokat? Read More »

Hogyan ellenőriznéd, hogy iterálható-e egy objektum?

Iterálható objektumokról és iterátorokról már bizonyára hallottál, sőt használtad is azokat. Ilyenek többek között azok, amelyekből egy forciklusban sorban egymás után elemeket lehet kikérni. (Ha esetleg nem találkoztál még ezekkel, mert még a Python tanulásod elején tartasz, akkor ajánlatos velük minél korábban alaposan megismerkedni, mert az iterálható objektum és iterátor kulcsfontosságú fogalmak és nyelvi elemek …

Hogyan ellenőriznéd, hogy iterálható-e egy objektum? Read More »

Tudtad, hogy egy osztályból példányt több, különböző argumentum alapján is létrehozhatsz?

Vegyünk például egy olyan osztályt, amelyből a három oldalhossz alapján háromszögeket mint példányokat tudunk előállítani. Ekkor az __init__ metódus az egyes oldalhosszakat fogadó három paraméterrel rendelkezik. Egy háromszöget azonban nem csak a három oldalával adhatunk meg, hanem mondjuk egy oldalával és a rajta fekvő két szöggel, vagy két oldalával és a közöttük levő szöggel. Miként …

Tudtad, hogy egy osztályból példányt több, különböző argumentum alapján is létrehozhatsz? Read More »

Hogyan növelhetjük a kód rugalmasságát függvények és metódusok túlterhelésével?

A kód rugalmasságán most azt értjük, hogy egy újabb igény esetén mennyire kell a már meglévő kódba belenyúlni, vagyis változtatni azon. Az ilyen változásokkal szemben akkor rugalmas a kód, ha az új igény kielégítése megoldható úgy, hogy csak új kódsorokkal kell kiegészíteni, de nem kell módosítani a már létezőn. A programtervezésben ezt magyarul nyitottság-zártság elvnek …

Hogyan növelhetjük a kód rugalmasságát függvények és metódusok túlterhelésével? Read More »

Hogyan segíthetjük a kód könnyebb olvashatóságát számok leírása esetén?

A magyar helyesírás szerint, az öt vagy ennél több számjegyű számok írásában a számjegyeket a hátulról számított hármas számcsoportok szerint tagoljuk, és az egyes csoportokat szóközzel vagy ponttal választjuk el egymástól. Például: 30 911 vagy 30.911; 456 789 vagy 456.789; 2 304 751 vagy 2.304.751. A Pythonban is lehetőség van a több számjegyből álló számok …

Hogyan segíthetjük a kód könnyebb olvashatóságát számok leírása esetén? Read More »

Milyen formában és hogyan tanuljam a Pythont?

Arra kérdésre, hogy milyen formában, azaz tanfolyamon (oktató által vezetve) vagy könyvből/videóból (autodidakta módon) érdemes-e tanulni, több szempontot mérlegelve lehet érdemi választ adni. A döntést meghatározza a személyiségünk, képességeink és a költségkeretünk. Kezdjük a legnyilvánvalóbbal, a költségekkel. Egy tanfolyam mindig többe kerül, mint egy tankönyv/videó. Ennek oka, hogy minimum az oktató órabérét meg kell fizetni, …

Milyen formában és hogyan tanuljam a Pythont? Read More »

Hogyan nyerjük ki az elemeket egy konténerbe többszörösen beágyazott iterálható objektumokból?

Tegyük fel, hogy adott egy konténerobjektum (pl. egy tuple), amelynek elemei között lehetnek újabb konténerek, és amelyek elemei között szintén előfordulhatnak konténerek. A feladat az, hogy előállítsunk egy listát, amelyben az eredeti konténerben található, tetszőlegesen mélyen beágyazott elemeket gyűjtjük össze. Elemeknek tekintünk minden nem konténerobjektumot, valamint a str és bytes típusú objektumokat. Az angolban ezt …

Hogyan nyerjük ki az elemeket egy konténerbe többszörösen beágyazott iterálható objektumokból? Read More »

Hogyan egyszerűsítsük a kódot és javítsuk az olvashatóságát a partial() függvénnyel?

A functools modul partial() függvénye arra szolgál, hogy egy több paraméterrel rendelkező hívható objektumból bizonyos paraméterek értékének rögzítésével egy új hívható objektumot állítson elő, amely ilyen módon az eredeti hívható objektum egy speciális változata. E módszer azáltal teszi olvashatóbbá a kódot, hogy a partial() eredményét egy, az adott célhoz illeszkedő kifejező névhez tudjuk rendelni. Továbbá, …

Hogyan egyszerűsítsük a kódot és javítsuk az olvashatóságát a partial() függvénnyel? Read More »