Blog JSystems - uwalniamy wiedzę!

Szukaj
Moduły - import kodu z innego pliku
Moduł to plik .py z funkcjami; import udostępnia je w innym pliku

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!
Szkolenie Python od podstaw, przez analizę danych, do machine learning w JSystems

Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.

Szkolenie Python od podstaw, przez analizę danych, do machine learning

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czym jest moduł w Pythonie?
Moduł to po prostu plik z rozszerzeniem py zawierający funkcje. Stosuje się go, aby tworzyć biblioteki narzędzi i odseparować ich kod od kodu właściwego programu. Moduły można też dystrybuować, żeby wykorzystywać je w innych aplikacjach.
Jak zaimportować moduł i wywołać jego funkcje?
Moduł importujesz instrukcją import wraz z jego nazwą, co udostępnia jego funkcje w Twoim pliku. Funkcję wywołujesz, poprzedzając jej nazwę nazwą modułu i kropką, na przykład paczka.hello(). Import wciąga zawartość modułu tak, że jego publiczne funkcje stają się widoczne w programie.
Jak skrócić wywołania funkcji z długiej nazwy modułu?
Przy imporcie możesz nadać modułowi lokalny alias, pisząc import paczka as p. Dzięki temu funkcje wywołujesz krócej, na przykład p.hello(), zamiast za każdym razem podawać pełną nazwę modułu.
Czy można zaimportować tylko wybrane funkcje z modułu?
Tak. Konstrukcja from paczka import add, sayno wciąga pojedyncze funkcje. Jest to przydatne, gdy moduł jest duży i zawiera wiele niepotrzebnych funkcji. Zaimportowane w ten sposób funkcje wywołujesz bez poprzedzania ich nazwą modułu ani aliasem.
Jak sprawdzić, jakie funkcje udostępnia moduł?
Listę dostępnych elementów modułu wyświetlisz funkcją dir, na przykład print(dir(paczka)). Aby zobaczyć dokumentację konkretnej funkcji, użyj help, podając nazwę funkcji - wyświetli się tekst zadeklarowany jako jej docstring.

Komentarze (0)

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

Brak komentarzy...