Każdy kto programuje w Pythonie z pewnością szybko przekonał się do zalet tzw. list comprehensions. Ten sposób tworzenia list jest nie tylko zgodny z filozofią języka, ale przede wszystkim zgrabny, krótki i czytelny. Czasami jednak zdarza się spotkać konstrukcje, które na pierwszy rzut oka wcale takie czytelne nie są. Przykładem niech będzie fragment, na który natknąłem […]
Read MoreKategoria: Python
Pattern matching w Pythonie
W dniu dzisiejszym ukazała się kolejna (szósta już) wersja alpha Pythona 3.10, wprowadzając tym samym dość przełomową dla tego języka funkcjonalność – dopasowywanie wzorca (ang. pattern matching). Specyfikacja tej funkcjonalności zawarta jest w PEP 634, zaś dokumenty PEP 635 oraz PEP 636 zawierają odpowiednio uzasadnienie dokonanych zmian oraz tutorial dla programistów. W tym wpisie przyjrzymy […]
Read MorePrzetwarzanie dużych JSONów w Pythonie
Jak w Pythonie odczytać dane z pliku w formacie JSON? Użyć modułu json! – odpowie zapewne spora część pythonistów. I chociaż bardzo często odpowiedź taka jest wystarczająca, niekiedy na horyzoncie pojawiają się problemy, w których zdecydowanie lepiej skorzystać z innych rozwiązań. Jednym z nich jest ijson, czyli iteratywny (ang. iterative) parser plików JSON. Na czym polega […]
Read MoreGuietta – sposób na proste GUI w Pythonie
W swoim programistycznym życiu napisałem przy użyciu frameworka Qt tysiące linii kodu. Przygodę z nim zacząłem od jego naturalnego środowiska, jakim jest język C++. Później zaś, gdy przerzuciłem się na Pythona, miałem okazję stworzyć całkiem sporo aplikacji, wykorzystując do tego PyQt. Używając zwrotu „napisałem w Qt” mam na myśli nie tylko posługiwanie się najróżniejszymi klasami, […]
Read MoreCzy w Pythonie może wyciekać pamięć?
Niedawno ktoś zadał mi pytanie: „czy w Pythonie może w ogóle wystąpić memory leak?„. Postanowiłem nieco przyjrzeć się temu tematowi i sprawdzić jak dużo pułapek dotyczących zużycia pamięci czeka na nas w tym języku. Wiele osób jest przekonanych, że wbudowane w Pythona mechanizmy są w stanie zawsze ustrzec programistę przed wyciekaniem pamięci. Czy jest tak […]
Read More