W raz z rozwojem naszych programów, będziemy chcieli dzielić je na mniejsze pliki, które z jednej strony będą sprawiać, że nasz kod będzie łatwiejszy do zarządzania oraz czytania, z drugiej strony, łatwiej będzie raz napisany kod użyć w innych programach. Przez nas, jak i przez kogoś innego.

Taki, podzielony, wyodrębniony kod, nazywamy modułami, natomiast poniżej wyjaśnimy jak je tworzyć oraz jak używać modułów już stworzonych przez innych. Zaczynajmy!

Tworzymy moduł!

Zanim skorzystamy z modułów przygotowanych przez innych programistów, napiszemy nasz własny. Zadanie może wydawać się skomplikowane, jednak w Pythonie tworzenie modułów jest bardzo proste i szybko to opanujemy.

Powiedzmy, że napisaliśmy funkcję, która pobiera jako parametr tekst i zwraca liczbę słów. Nasz plik z kodem źródłowym może się nazywać program.py i wyglądać następująco

def zlicz(tekst):
    wyrazy = 1
    for i in tekst:
        if i == ' ':
            wyrazy += 1
    return wyrazy

print (zlicz("Ala ma kota"))

W jednym pliku definiujemy funkcję oraz z niej korzystamy. Co jeżeli:

  • Co jeżeli będziemy mieć wiele funkcji, które sprawią że nasz plik zrobi się bardzo duży?
  • Co jeżeli będziemy z tej samej funkcji skorzystać w innym naszym programie?

Otóż tę sama funkcję możemy zapiać w osobnym pliku. Powiedzmy mod1.py i z niej skorzystać w naszym pliku program.py.

plik mod1.py

def zlicz(tekst):
    wyrazy = 1
    for i in tekst:
        if i == ' ':
            wyrazy += 1
    return wyrazy

plik program.py

import mod1

print (mod1.zlicz("Ala ma kota"))

i analogicznie, pisząc inny program, możemy skorzystać z tej samej funkcji

plik innyProgram.py

import mod1

x = mod1.zlicz("tekst do zliczenia wyrazów")

Otóż proszę Państwa, właśnie napisaliśmy nasz pierwszy moduł 🙂

Co się stało?:

  1. napisaliśmy funkcję ‚zlicz’, w osobnym pliku, również z rozszerzeniem typowym dla Python „.py” – mod1.py
  2. plik jest umieszczony w tym samym katalogu co plik „program.py”
  3. w pliku, w którym chcemy z naszej funkcji skorzystać, wykonujemy polecenie ‚import’, które informuje Python o naszych zamiarach. Za funkcją, umieszczamy nazwę pliku, ale bez rozszerzenia. import mod1
  4. Wywołujemy funkcję poprzez odwołanie się do modułu, w którym nasza funkcja się znajduje oraz jej nazwę mod1.zlicz()

Proste, bardzo proste.

Kluczem jest instrukcja import. Aczkolwiek mamy alternatywę. Możemy użyć innego sposobu ‚zaimportowania’ naszej funkcji, a mianowicie

plik program.py

from mod1 import zlicz

x = zlicz ("Nowy sposób importu modułu")

W tym przypadku nie musimy odwoływać się do funkcji zlicz, poprzez podanie nazwy modułu, a jedynie samą nazwę.

Import modułów napisanych przez innych.

W naszej roli analityka czy też programisty, nie raz będziemy chcieć zainstalować oraz użyć modułów już przygotowanych. W kursie o najważniejszych bibliotekach python, jest pokazanych ich wiele.

Są to z reguły moduły, wyspecjalizowane do wykonywania określonych zadań. Mieliśmy również do czynienia z nimi w ramach ćwiczeń Python dla początkujących, gdzie używaliśmy modułu random czy też time.

Aby móc z takiego moduły skorzystać, w pierwszej kolejności, należy taki moduł zainstalować. Jeżeli zainstalowaliśmy oprogramowanie Anacoda, wiele modułów jest instalowanych razem z nim. Jeżeli nie, to używamy komendy pip

pip

pip jest programem, który może zainstalować wskazane przez nas pakietów, zawierających moduły, które następnie możemy zaimportować poleceniem import. Różnica pomiędzy pakietem a modułem jest taka, że moduł jest z reguły pojedynczym plikiem z rozszerzeniem .py, natomiast pakiet oznacza kolekcję / katalog z modułami.

Listę wszystkich modułów, które możemy zainstalować znajdziemy na https://pypi.org

Aby zainstalować pożądany przez nas moduł,wykonujemy następujące polecenie:

$ pip install <nazwa pakietu>

np:

$ pip install flask

a nastepnie, możemy zaimportować nasz moduł, za pomocą polecenia ‚import flask’. Więcej na temat pip, znajdziemy w PIP – zarządzanie pakietami i modułami w języku Python

Podsumowując. Moduły i pakiety w Python to rzecz powszechna. Z jednej strony będziemy tworzyć nasze własne, z drugiej strony korzystać z przygotowanych przez innych. Zarówno program pip jak i cała koncepcja modułów, jest oczywiście bardziej rozbudowana, jednak wiedza z tego artykułu, jest tym czego potrzebujemy aby swobodnie poszerzać swoją wiedzę oraz umiejętności z zakresu Python.

Python, NIE tylko dla początkujących

  1. Wstęp do kursu
  2. Moduły i pakiety <– bieżąca lekcja
  3. Programowanie obiektowe – wstęp
  4. Programowanie obiektowe – dziedziczenie
  5. Programowanie obiektowe – hermetyzacja
  6. Mini projekt – Organizer
  7. Funkcje rekurencyjne w Python
  8. Pisanie skryptów w Python
  9. Mini projekt – tajny agent, generator haseł
  10. *args oraz **kwargs
  11. Dekoratory w Python
  12. Mini projekt – tajny agent – kontakty
  13. Odwzorowanie list
  14. Podsumowanie oraz dalsze kroki