Python import modułów

Często się zdarza, że potrzebujemy w programie rozbić coś na mniejsze części. Znacznie prościej skupić się na mniejszej rzeczy, niż na całym programie od razu. Poza tym, znacznie lepiej jest później zarządzać takim kodem. Wyszukanie błędów, w programie napisanym w jednym pliku zajmującym 1000 linii kodu jest trudniejsze niż w 100 liniach, a które wiemy że są powiązane z danym błędem.

Ten post może być również użyteczny dla osób piszących w C++, gdyż podział na pliki występuje również w C++. W tym języku używa się do tego celu instrukcji #include i załącza potrzebne pliki. Jeśli są w tej samej lokalizacji piszemy po prostu jej nazwę w cudzysłowiu.

W pythonie występuje coś podobnego z dodatkowymi zabezpieczeniami. Przed wieloma dodawaniami, które są w C++ zmorą, a które tutaj są importowane po prostu raz, żeby uniknąć wielokrotnego dodawania. Nosi to nazwę moduł. Moduł to pojedyńczy plik zawierający dane, które Nas interesują na podany przez Nas temat. Dla przykładu można podać wyszukiwanie danych w programie. Chcemy, żeby program wyszukiwał wszystkie frazy w stringu zaczynają się od np. litery 'A'. Chcemy w jednym pliku mieć więc wyszukiwanie, a w głównym inne czynności. Zróbmy to więc to:

name.py:

our_string = "Ala,Agnieszka,Tomek,Andrzej,Bożydar"

import search

search.find_them(our_string)


del search

search.py:

def find_them(data):
counter = 0
position = []
for i in range(len(data)):
if i > 1:
if data[i] == 'A' and data[i-1] == ',':
print(counter,i)
position.insert(counter,i)
counter+=1
else:
if data[i] == 'A':
position.insert(counter,i)
counter+=1

print(position)

Co właśnie zrobiliśmy ? Nie wgłębiajmy się szczegółowo w analizę search.py. Jest to po prostu wyszukiwanie przydatne w tym konkretnym przypadku. Dlatego właśnie skupię się tylko na nieznanym Nam dotychczas mechanizmie importowania. W pliku name.py wpisujemy słówko kluczowe import, które importuje Nam podany przez Nas pliku z Pythonem. Plik ten musi mieć dopisek .py, ale my go nie piszemy, gdyż mając konieczność jego pisania, wychodziłyby absurdalne rzeczy, gdyż kropka jest zarówno identyfikatorem, że nazwa ma podane dalej rozszerzenie, jak i wyciągania czegoś już w samym Pythonie. Ta lekcja zawierała praktyczny pokaz możliwości dodawania modułów, oraz pokazania składni Pythona w przyjazny sposób. W kolejnej części zajmiemy się klasami. Żeby wyczerpać temat prostej obsługi modułów, pokażę jeszcze przykład jak importuje się coś co zawiera klasę.

name.py:

import search.py

my = MyClass()
my.do_something()

del search.py
search.py:

class MyClass():
def do_something(self):
pass


Słówko pass oznacza brak zadania. Składnia python-a wymaga żeby funkcja, klasa lub jakaś instrukcja miała coś w sobie. Dodaje się to przez tabulator i napisanie dalszej części wewnątrz klasy lub instrukcji. Słówko kluczowe pass oznacza, że na razie tworzymy daną instrukcję, wymagającą tabulatora i wpisanie do Niej zadań, ale tego jeszcze teraz nie robimy. Zrobimy to w późniejszym czasie, lub na tym się skończy jej zadanie. Do zobaczenia!

Komentarze

Popularne posty z tego bloga

Co dokładnie oznacza std::cout<<"Witaj Swiecie!"<<'\n''; w C++ ?

Klasy, Przestrzenie nazw, Nonlocal, Global i Local. Czy Python ma zmienne prywatne ?

Przeciążanie operatorów w C++