2024-12-03

Myśląc o Pythonie: Moduły

Python jest jednym z tych języków programowania, które wyróżniają się przejrzystością i prostotą. Ale co zrobić, gdy nasz projekt zaczyna rosnąć i pojawia się chaos w kodzie? Wtedy wchodzą na scenę moduły. Zacznijmy powieść o tej niezwykle przydatnej konsepcji jaką są moduły. Są to twory zwiększające przejrzystość i uporządkowanie projektów na całym świecie - a przynajmniej dające taką możliwość 😉

Czym są moduły?

Jak można zdefiniować koncepcję modułów? W najprostszych słowach moduł to jest coś co definiujemy jeden raz. Następnie możemy z tego później korzystać wielokrotnie (ktoś tu widzi jakąś analogię do funkcji?). W praktyce moduł w Pythonie to zbiór pewnych zmiennych oraz funkcji. Cel definiowania takiego tworu jest prosty. Chcemy mieć coś co później łatwo będziemy mogli importować do różnych programów i będzie reużwalne. Jest to zestaw funkcjonalności zdefiniowanych raz, których możemy używać wielokrotnie. Jeśli funkcja jest pojedynczym blokiem kodu, który definiujemy raz i używamy wielokrotnie. Tak moduł jest zbiorem takich funkcji, który możemy wykorzystywać wielokrotnie.

Innymi słowy moduły to nic innego jak pliki zawierające kod Pythona. Mogą zawierać funkcje, klasy i zmienne, które później możemy zaimportować do innego pliku i z nich korzystać. Dzięki temu możemy podzielić nasz projekt na mniejsze, bardziej zrozumiałe części.

Wyobraź sobie moduł jako pudełko narzędzi – masz w nim wszystko, czego potrzebujesz, a kiedy skończysz, po prostu zamykasz pudełko. To pozwala na utrzymanie porządku i wielokrotne użycie tych samych narzędzi bez konieczności ich ponownego tworzenia.

Podział modułów

Moduły możemy podzielić na wbudowane (biblioteka standardowa Pythona) i własne. Właśnie najfajniejsze w modułach jest to, że możemy tworzyć własne moduły. Jednak sam Python zawiera już niezwykle rozbudowaną bibliotekę standardową. Która jest jedną z jego wielkich zalet.

Własne moduły to pliki stworzone przez programistów, które mogą zawierać określone funkcjonalności. Wiele takich modułów grupuje się w biblioteki, które można znaleźć w Python Package Index (PyPI).Możemy tam znaleźć naprawdę potężne ilości różnych modułów - dzięki temu programowanie staje się szybsze i często przyjemniejsze. NIczym podróż przez poznawanie nowych bibliotek.

Importowanie modułów – jak to działa?

Wracając jednak na ziemię, musimy się dowiedzieć jak w ogóle z modułów korzystać. Powiedziawszy to, możemy przejść do podstawowego przykładu. Jak zaimportować jakiś moduł przykładowo z biblioteki standardowej? Tutaj wkracza słówko import. Które pozwala właśnie importować dany moduł.

moduły - pierwszy import i użycie funkcji dir do przyjżenia się modułowi sys.

Jak widzimy po prostu po słówku import podajemy nazwę modułu jaki nas interesuje. W tym wypadku import jest prosty, ponieważ dotyczy modułu standardowego - wbudowanego w Pythna. Moglibyśmy się o tym przekonać po prostu wyświetlając sys. Dostalibyśmy informacje, że ten obiekt jest builtin, czyli właśnie wbudowany. Natomiast my tutaj używamy dir, które pozwala zobaczyć jakie możliwości daje nam moduł, na którym użyjemy tej funkcji. Innymi słowy zobaczymy wszystkie atrybuty, jakie oferuje moduł sys. Co można zobserwować poniżej.

moduły - jakie możliowści daje moduł sys - lista artybutów modułu sys wyświetlona funkcją dir.

Jak możemy wydedukować moduł sys zapewnia funkcje i zmienne pozwalające na interakcję z interpreterem Pythona. Jest szczególnie przydatny, gdy chcesz uzyskać informacje o środowisku wykonawczym lub kontrolować sposób działania programu. Oto kluczowe zastosowania modułu sys:

Możemy sobie wybrać jakiś atrybut z listy jakąś wyświetliliśmy i go użyć. Jak użyć takiego atrybutu? Klasycznie dla programowania obiektowego, musimy użyć kropki. Po kropce, która jest operatorem "dostępu do członków'" lub "operatorem wyboru skladowej", określamy jakiego atrybutu czy metody użyć. Zobaczmy zatem jakiej wersji Pythona używam.

moduły - użycie atrybutu zaimportowaenego modułu

Spróbuj poeksperymentować i przykładowo sprawdzić z jakiej platformy i wersji Pythona sam korzystasz 😉

Moduły wbudowane – skarbnica możliwości

Python oferuje bogaty zestaw modułów wbudowanych, które mogą znacznie ułatwić życie programiście. Oto kilka popularnych przykładów:

Random

Mamy też inne wbudowane moduły, a jednym z częściej używanych jest moduł random. Pozwala on nam generować wartości losowe. Zaimportujmy go i zobaczmy co random ma w sobie.

moduły - import modułu random i zaglądanie do środka

Jak widzimy moduł random również ma szerokie możliwości. Jedną z moich ulubionych i bardzo często używanych metod tego modułu jest randint. Jak sama nazwa wskazuje, pozwala nam ona generować losowe liczby całkowite. Tutaj musimy podać dolną i górną granicę przedziału, ale nie jest to też zaskoczenie. W końcu chcemy losować z określonego przedziału zazwyczaj.

moduły - import i użycie modułu random

Jak możemy zaobserwować użycie takiej metody jest bardzo proste, intuicyjne i wygodne, a efekty zgodne z oczekiwaniami. Przy każdym uruchomieniu otrzymujemy pseudolosową wartość.

OS

Moduł os w Pythonie jest biblioteką standardową, która zapewnia funkcje do interakcji z systemem operacyjnym. Umożliwia zarządzanie plikami, katalogami, a także wykonywanie innych operacji zależnych od systemu operacyjnego, takich jak uruchamianie procesów czy dostęp do zmiennych środowiskowych.

moduły - import i użycie modułu os

Możemy przykładowo z poziomu kodu utworzyć nowy plik za pomocą metody mkdir (tak samo nazywa się jedno z poleceń do tworzenia katalogów). Oczywiście analogicznie jest możliwe też usuwanie katalogów. Katalogi zostaną stworzone w lokalizacji w jakiej jest uruchomiony program, lub w innej, jeśli taką podamy. Działa to analogicznie jak tworzenie katalogów w terminalu.

Import tylko określonego składnika modułu

Moduły już umiemy importować - po prostu używamy słówka import. Jednak to nie są jedyne możliwości importowania modułów. W poznanym przed chwilą przypadku potrzebujemy za każdym razem importować cały moduł, więc także jego części, których nie użyjemy. Co więcej, jesteśmy zmuszeni podawać jego nazwę każdorazowo przy jego użyciu. Są jednak jeszcze inne możliwości.

Import i użycie jednej funkcji z modułu random

Możemy, jak powyżej, zaimportować tylko konkretną funkcję z modułu. Zaowocuje to tym, że nie będziem y musieli przy jej użyciu podawać nazwy modułu, bo i po co. Dodatkowo nie importujemy całego modułu,więc nie musi zostać wczytany jakiś nadmiarowy kod, gdybyśmy mieli takie obawy. Precyzyjnie importujemy tylko to, z czego będziemy korzystać.

Tutaj też należy pamiętać o jednej rzeczy. Mianowicie przy imporcie określonego bytu z modułu, istnieje możliwość, że będzie on miał nazwę taką samą jak jakaś inna funkcja czy atrybut w używanym przez nas kodzie. Należy na takie konflikty nazw uważać. - prowadzą one do błędów.

Tworzenie własnych modułów

Największą zaletą modułów jest możliwość tworzenia własnych. Załóżmy, że chcesz przechowywać funkcje pomocnicze w osobnym pliku. Wystarczy utworzyć nowy plik .py, np. utils.py, i umieścić w nim kod. Utwórzmy sobie jakąś funkcję i zmienną w jednym pliku o nazwie utils.py.

Stworzenie własnego modułu

Następnie w pliku main.py możemy zaimportować stworzony moduł i użyć dostępnych zmiennych czy funkcji.

Użycie własnego modułu

Jak widzimy zatem, mamy nie tylko możliwość korzystania z gotowych modułów, ale i tworzenia własnych. Co daje nam dużą dowolność i elastyczność w tworzeniu i organizacji naszych projektów.

One comment on “Myśląc o Pythonie: Moduły”

Dodaj komentarz

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram