172
Rozdział 4.
Szybka aktualizacja
Odświeżanie tego, co już wiemy o funkcjach
Przypomnijmy sobie, co nowego dowiedziałeś się na temat funkcji do tej pory,
gdy poświęciłeś już nieco czasu na poznawanie sposobu działania argumentów.
CELNE SPOSTRZEŻENIA
Oprócz tego, że funkcje wspierają ponowne
użycie kodu, mogą też ukrywać złożoność. Jeśli
masz w swoim kodzie jakiś skomplikowany
wiersz, z którego będziesz często korzystał,
wydziel go i ukryj za prostym wywołaniem
funkcji.
Dowolny argument funkcji może mieć wartość
domyślną, którą podaje się w wierszu def. Jeśli
tak jest, podawanie wartości takiego argumentu
przy wywoływaniu funkcji ma charakter
opcjonalny.
Argumenty możesz przypisywać w sposób
pozycyjny, lecz możesz też korzystać ze słów
kluczowych. Jeśli używasz tej drugiej metody,
dopuszczalna jest dowolna kolejność argumentów
(ponieważ wszelkie prawdopodobieństwo
wystąpienia niejednoznaczności zostaje
wyeliminowane dzięki zastosowaniu słów
kluczowych i pozycje argumentów przestają
mieć jakiekolwiek znaczenie)..
Te funkcje moim zdaniem
naprawdę dają radę. Jak mogę
ich używać i jak udostępniać je
innym programistom?
Istnieje wiele sposobów, aby to zrobić.
Teraz, gdy masz już trochę kodu, którym warto się
podzielić z innymi, sensowne wydaje się pytanie,
jak najlepiej z niego korzystać i jak udostępniać go
innym programistom. Podobnie jak w przypadku
wielu innych kwestii, również na to pytanie jest
więcej niż jedna dobra odpowiedź. Na kilku
następnych stronach spróbujemy Ci przybliżyć taki
sposób pakowania i dystrybucji Twoich funkcji,
aby ich używanie było dla Ciebie i innych osób
łatwe i przynosiło wszystkim korzyści.
jesteś tutaj�
173
Ponowne użycie kodu
Funkcje tworzą moduły
Po przejściu całej tej drogi związanej z tworzeniem funkcji wielokrotnego użytku (a właściwie
dwóch takich funkcji, jak ma to miejsce w przypadku kodu znajdującego się w pliku
vsearch.py),
warto zapytać:
w jaki sposób najlepiej udostępniać swoje funkcje?
Możliwe jest oczywiście udostępnianie funkcji przez kopiowanie i wklejanie jej kodu wszędzie
tam, gdzie jest on potrzebny, ale z uwagi na to, że jest to bardzo zła i nieefektywna metoda, nie
będziemy jej brać pod uwagę. Wiele kopii tej samej funkcji powoduje szybkie zaśmiecenie bazy
kodu i jest gwarantowaną drogą do katastrofy (zwłaszcza że z pewnością nadejdzie kiedyś taki
moment, gdy będziesz musiał zmienić sposób działania swojej funkcji). O wiele lepszym pomysłem
jest utworzenie
modułu
zawierającego pojedynczą, kanoniczną kopię wszystkich funkcji, które
chcesz udostępniać. To z kolei prowadzi do następnego pytania:
jak tworzy się moduły w Pythonie?
Odpowiedź na to pytanie nie może być prostsza: modułem jest każdy plik zawierający funkcje.
Szczęśliwie dla nas oznacza to również, że plik
vsearch.py stanowi już moduł. Poniżej możesz go
znów ujrzeć, tym razem w pełni jego modułowej chwały.
Plik vsearch.py zawiera funkcje,
co czyni go pełnoprawnym modułem.
moduł
Tworzenie modułów nie może być prostsze, jednak...
Tworzenie modułów to bułka z masłem: wystarczy tylko utworzyć plik zawierający funkcje,
które chcesz udostępnić.
Gdy moduł już istnieje, udostępnienie jego zawartości swoim programom jest również bardzo
prostym działaniem: musisz tu jedynie zaimportować ten moduł za pomocą instrukcji
import
języka Python.
Samo to działanie nie jest skomplikowane. Powinieneś jednak wiedzieć, że interpreter zakłada,
iż moduł, który importujesz, znajduje się w miejscu wskazywanym przez
ścieżkę wyszukiwania
(ang.
search path), a zapewnienie, żeby tak właśnie było, może wymagać nieco więcej zachodu.
Na kilku kolejnych stronach przedstawimy Ci tajniki importowania modułu.
Udostępniaj
swoje funkcje
w modułach.
Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.