Minule jsme si ukázali využití příkazu with
při práci se soubory. Dneska se podíváme na to, jak jej využít při práci se zámky.
Python
Č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.