Blog JSystems - uwalniamy wiedzę!

Szukaj

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!

 

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...