Občas se vám může hodit vytvořit dočasný adresář, vstoupit do něj, vykonat určité akce, vrátit se zpět do původního adresáře a dočasný adresář zrušit. V dnešním příspěvku se podíváme na to, jak to (ne)dělat v Pythonu.
Často je potřeba provést se souborem nějakou činnost, např. načíst celý obsah souboru do paměti. Jaká je typická podoba kódu, který pro tento účel vídávám u začínajících programátorů v Pythonu a jak to udělat lépe se dozvíte v dnešním příspěvku.
Jak jistě z kurzů assembleru víte, existují dva typy bitových posunů doprava: aritmetický a logický. Pokud se tento posun aplikuje na kladné číslo, tak jsou oba typy totožné. Rozdíl nastane u posuvu záporných čísel, kdy logický posun doplňuje zleva nuly, kdežto aritmetický kopíruje znaménkový bit, který je 1 u záporných čísel ve dvojkovém doplňku. Operátor >> v Pythonu je aritmetický posun doprava. Následující příspěvek se snaží o implementaci logického posunu do Pythonu.
Programátoři v Pythonu, kteří k tomuto jazyku přešli z některého staticky typovaného jazyka (C++, Java, ...), mívají problém s tím, že se snaží používat koncepty, které mají zažité z jiných jazyků, ale které v Pythonu nemají co dělat. Jeden z nich se týká zneužívání funkce isinstance() a cílem tohoto příspěvku je na něj poukázat a vysvětlit, v čem je problém.
Jelikož jsem na toto téma nedávno narazil při diskusi s mým spolubydlícím a také se pravidelně objevuje v předmětech prof. Hrušky :), tak jsem se rozhodl osvětlit část problematiky přístupu ke globálním proměnným v jazycích Python a PHP.
Při testování metodou bílé skřínky (white box) je obecná snaha o co největší pokrytí testovaného kódu (code coverage). Minimálně byste se měli snažit o to, abyste testy pokryli každý řádek vašeho programu, který stojí za to testovat (např. obě větve každého úplného if-else příkazu, ale už ne třeba situace typu assert false, 'x > 0; this should never happen'). O tom, jak si zjistit aktuální pokrytí vašeho kódu v jazyce Python bude následující příspěvek.