Blog JSystems - z miłości do programowania

Moduły



Moduły to po prostu pliki zawierające funkcje.  Stosuje się je po to by stworzyć sobie biblioteki narzędzi i odseparować ich kod od kodu właściwego programu. Moduły można też dystrybuować by wykorzystywać je w innych aplikacjach.


 


Definiowanie modułów


 Stwórzmy dwa nowe pliki :



  • py

  • py


W pierwszym umieszczamy kod:


def hello():
    '''Ta funkcja wypisuje na ekranie tekst hello world!'''
    print("hello world!")


W drugim :


def sayno():
    print('NO!')

def sayyes():
    print('YES')

def add(a,b):
    return a+b


Tworzymy teraz trzeci plik, w którym będzie nasz "właściwy program" i na początek umieszczamy w nim taką instrukcję:


import paczka


Taki zapis oznacza "zassanie" zawartości modułu "paczka" do naszego pliku w taki sposób, że funkcje umieszczone w tym importowanym module stają się widoczne w naszym programie. Możemy teraz wywołać dowolną publiczną funkcję z zaimportowanego modułu w ten sposób:


paczka.hello()


Gdyby moduł paczka miał dłuższą nazwę, konieczność podawania jej przy każdym wywołaniu funkcji w niej zawartej byłoby conajmniej niehumanitarna ;). Jeżeli chcemy skrócić wywołanie, możemy przy okazji importu modułu nadać mu lokalny alias:


import paczka as p


dzięki czemu funkcje z tego modułu będzie można wywoływać teraz w ten sposób:


p.hello()


Istnieje też możliwość importu pojedynczych funkcji z modułu (ten może być przecież bardzo duży i zawierać wiele niepotrzebnych nam, a podlegających parsowaniu funkcji). Dzięki temu będziemy mogli przy okazji wywoływać zaimpotowane funkcje bez poprzedzania ich nazw nazwą modułu czy jego aliasem.


from paczka2 import add, sayno
sayno()


 


Dokumentowanie modułów i sprawdzanie dostępnych funkcji


Aby sprawdzić dostępne w module funkcje, możemy posłużyć się:


print(dir(paczka))


Wyświetli nam się lista na konsoli:


['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'hello']


Jeśli chcemy, możemy teraz sprawdzić dokumentację jakiejś wybranej funkcji:


help(moduly_pomocnicze.hello)


Zobaczymy wtedy to co zadeklarowaliśmy jako dokumentację danej funkcji:


hello()


    Ta funkcja wypisuje na ekranie tekst hello world!


 

Przyjdź do nas na szkolenie z języka Python! Mamy szereg szkoleń w ofercie, od podstawowych po aplikacje webowe z użyciem Django, analizę danych, tesowanie, machine learning i wiele innych.
Sprawdź dostępne szkolenia Python
Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu!