Wszystkie funkcje i metody rozpoczynają się instrukcją def. Po słowie kluczowym "def" w Pythonie podaje się nazwę funkcji, a następnie listę argumentów. Dwukropek na końcu wskazuje na rozpoczęcie bloku kodu funkcji, który musi być umieszczony w nowej linii.
W Pythonie nie używa się nawiasów klamrowych do oznaczenia bloku kodu. Zamiast nich, stosuje się wcięcia składające się z czterech spacji. Każda nowa instrukcja to nowa linia kodu. Można również oddzielać je za pomocą średnika. Aby zakończyć funkcję i zwrócić wynik, używa się słowa kluczowego return. Jeśli go nie użyjesz, to po osiągnięciu końca ciała funkcji, funkcja zakończy się i zwróci obiekt typu None.
To są argumenty obowiązkowe. Aby funkcja działała poprawnie, ważne jest umieszczanie ich w określonej kolejności.
Kiedy wywołujesz funkcję addfunc, przekazujesz jej dwa obowiązkowe argumenty. Będą one dostępne wewnątrz ciała funkcji i zostaną powiązane z zmiennymi val1 i val2. Jeśli tego nie zrobisz, otrzymasz błąd TypeError.
To są parametry funkcji z domyślną wartością. Można ją zmienić, korzystając z nowej wartości pod nazwą atrybutu.
Atrybutowi name przypisano nową wartość. Spowoduje to zmianę wyniku konkatenacji ciągów znaków i kolejne wyjście.
Jedną z ciekawych cech Pythona są funkcje anonimowe, zwane także funkcjami lambda. Są to proste wyrażenia, które można przypisać do zmiennej i używać wielokrotnie. Najczęściej wykorzystuje się je do filtrowania elementów zbioru.
Wynik obliczeń funkcji jest zwracany za pomocą instrukcji return. Możesz zwracać obiekty dowolnego typu i w dowolnej ilości, oddzielając je przecinkiem.
Jeśli funkcja zwraca kilka obiektów, zostaną one spakowane w krotkę (tuple). Wtedy można się do konkretnych elementów odwoływać przez indeks. Funkcja, która nie zwraca wartości jawnie, domyślnie zwróci obiekt typu None.