jesteś tutaj�
147
Ponowne użycie kodu
Wprowadzenie do funkcji
Zanim zaczniemy przerabiać nasz istniejący kod na funkcję, poświęćmy trochę czasu na analizę anatomii dowolnej
funkcji w Pythonie. Gdy wprowadzenie to dobiegnie końca, przyjrzymy się naszemu istniejącemu kodowi
i przejdziemy kroki konieczne, aby nadać mu formę funkcji, której będziesz mógł wielokrotnie używać.
Nie przejmuj się teraz szczegółami. Chodzi nam tu jedynie o to, abyś nabrał ogólnego pojęcie o tym, jak wyglądają
funkcje w Pythonie. I tym właśnie zajmiemy się na tej i kolejnej stronie. Po szczegóły, które powinieneś poznać,
będziemy sukcesywnie sięgać wraz z tym, jak rozdział ten będzie się rozwijał. Przedstawione poniżej okno edycji IDLE
zawiera szablon, z którego możesz korzystać, tworząc swoje funkcje. Przyglądając mu się, rozważ następujące rzeczy:
Funkcje wprowadzają dwa nowe słowa kluczowe: def oraz return.
Obydwa te słowa są w edytorze IDLE wyświetlane na pomarańczowo. Słowo
def
poprzedza nazwę funkcji
(wyświetlaną na niebiesko) oraz wszystkie szczegóły na temat argumentów, które może ona przyjmować.
Użycie słowa
return
jest opcjonalne; jest ono wykorzystywane do przekazania wartości do kodu, z którego
wywołana została funkcja.
Funkcje mogą przyjmować argumenty (dane).
Funkcja może przyjmować wartości argumentów (stanowiące dane wejściowe funkcji). Listę parametrów
podaje się w nawiasie po nazwie funkcji, w tym samym wierszu, w którym znajduje się słowo kluczowe
def
.
Funkcje zawierają kod oraz (zwykle) dokumentację.
Kod tworzący funkcję jest wcięty o jeden poziom bardziej niż wiersz ze słowem
def
i powinien zawierać
komentarze wszędzie tam, gdzie ma to sens. Poniżej zademonstrowaliśmy dwa sposoby dodawania
komentarzy: przy użyciu łańcucha znakowego ujętego w trzy znaki cudzysłowu na początku i końcu
(wyświetlanego w oknie na zielono i znanego pod nazwą
tekstu dokumentującego
) oraz w postaci
komentarzy jednowierszowych, zaczynających się od symbolu
#
(które wyświetlane są na czerwono).
To jest wygodny
szablon funkcji.
W wierszu zaczynającym
się od słowa „def”
określa się nazwę i listę
argumentów funkcji.
Twój kod powinien
znaleźć się
tutaj (w miejscu
zajmowanym teraz
przez te komentarze
jednowierszowe).
Tekst dokumentujący
opisuje zastosowanie
funkcji.
Porady maniaka
Nazwa „funkcja” używana jest w Pythonie do opisu fragmentu kodu, który może być wielokrotnie wykorzystywany.
W innych językach na określenie tego rodzaju konstrukcji używane są słowa „procedura”, „podprogram” i „metoda”.
Jeśli funkcja należy do klasy Pythona, znana jest jako „metoda”. O klasach i metodach w języku Python dowiesz się
z jednego z kolejnych rozdziałów tej książki.
1
2
3
148
Rozdział 4.
Co z typem?
Co z informacją na temat typu?
Przyjrzyj się naszemu szablonowi funkcji raz jeszcze. Czy oprócz kodu, który ma być wykonany w jej
ramach, brakuje tu jeszcze czegoś? Czy nie pominięto w nim jakiejś rzeczy, którą spodziewałeś się
zobaczyć? Przyjrzyj się uważnie.
Trochę osłupiałem na widok
tego szablonu funkcji. Skąd interpreter
będzie wiedział, jakich typów argumentów
ma się spodziewać i jaki będzie typ wartości
zwracanej?
Nie będzie wiedział, ale Ty nie musisz się tym martwić.
Interpreter języka Python nie wymusza na Tobie określania typów
argumentów funkcji ani zwracanej przez nią wartości. Niewykluczone,
że dość mocno Cię to zaskoczyło, jeśli korzystałeś wcześniej z innych
języków programowania, w których było to konieczne. Nie powinieneś
się tym jednak martwić.
Python umożliwia Ci przekazywanie dowolnego
obiektu w roli
argumentu funkcji, a także przekazywanie z powrotem dowolnego
obiektu jako wartości zwracanej. Interpreter nie dba o typ tych
obiektów ani go nie sprawdza (troszczy się tylko o to, aby obiekty te
zostały podane).
W języku Python 3 można
wskazać spodziewane typy argumentów
i wartości zwracanych; pokażemy to zresztą w dalszej części niniejszego
rozdziału. Skorzystanie z tej możliwości nie skutkuje jednak
magicznym włączeniem mechanizmu kontroli typów, ponieważ Python
nigdy nie sprawdza typów argumentów ani wartości zwracanych.
Czy w tym
szablonie
funkcji
czegoś nie
brakuje?
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.