W tym artykule dowiesz się o funkcjach, czym jest funkcja, jej składni, składnikach i typach funkcji. Nauczysz się także tworzyć funkcję w Pythonie.
Wideo: Wprowadzenie do funkcji Pythona
Co to jest funkcja w Pythonie?
W Pythonie funkcja to grupa powiązanych instrukcji, które wykonują określone zadanie.
Funkcje pomagają podzielić nasz program na mniejsze i modułowe fragmenty. W miarę jak nasz program się rozrasta, funkcje sprawiają, że jest on bardziej zorganizowany i łatwiejszy w zarządzaniu.
Ponadto unika powtórzeń i umożliwia ponowne użycie kodu.
Składnia funkcji
def nazwa_funkcji (parametry): "" "ciąg dokumentów" "" instrukcje
Powyżej pokazano definicję funkcji, która składa się z następujących komponentów.
- Słowo kluczowe,
def
które oznacza początek nagłówka funkcji. - Nazwa funkcji jednoznacznie identyfikująca funkcję. Nazewnictwo funkcji podlega tym samym regułom zapisywania identyfikatorów w Pythonie.
- Parametry (argumenty), przez które przekazujemy wartości do funkcji. Są opcjonalne.
- Dwukropek (:) oznaczający koniec nagłówka funkcji.
- Opcjonalny ciąg dokumentacji (docstring) opisujący, co robi funkcja.
- Jedna lub więcej prawidłowych instrukcji Pythona, które tworzą treść funkcji. Instrukcje muszą mieć ten sam poziom wcięcia (zwykle 4 spacje).
- Opcjonalna
return
instrukcja zwracająca wartość z funkcji.
Przykład funkcji
def greet(name): """ This function greets to the person passed in as a parameter """ print("Hello, " + name + ". Good morning!")
Jak wywołać funkcję w Pythonie?
Po zdefiniowaniu funkcji możemy ją wywołać z innej funkcji, programu lub nawet z zachęty Pythona. Aby wywołać funkcję, po prostu wpisujemy nazwę funkcji z odpowiednimi parametrami.
>>> greet('Paul') Hello, Paul. Good morning!
Uwaga: Spróbuj uruchomić powyższy kod w programie w języku Python z definicją funkcji, aby zobaczyć dane wyjściowe.
def greet(name): """ This function greets to the person passed in as a parameter """ print("Hello, " + name + ". Good morning!") greet('Paul')
Docstrings
Pierwszy ciąg po nagłówku funkcji nazywany jest ciągiem dokumentacyjnym i jest skrótem od ciągu dokumentacji. Jest krótko używany do wyjaśnienia, co robi funkcja.
Chociaż opcjonalna, dokumentacja jest dobrą praktyką programistyczną. Jeśli nie pamiętasz, co jadłeś na obiad w zeszłym tygodniu, zawsze dokumentuj swój kod.
W powyższym przykładzie mamy ciąg dokumentacyjny bezpośrednio pod nagłówkiem funkcji. Zwykle używamy potrójnych cudzysłowów, aby ciąg dokumentów obejmował wiele wierszy. Ten ciąg jest dostępny dla nas jako __doc__
atrybut funkcji.
Na przykład :
Spróbuj uruchomić następujące polecenie w powłoce Pythona, aby zobaczyć dane wyjściowe.
>>> print(greet.__doc__) This function greets to the person passed in as a parameter
Aby dowiedzieć się więcej o ciągach dokumentów w Pythonie, odwiedź stronę Python Docstrings.
Instrukcja return
return
Oświadczenie jest używany, aby zakończyć funkcję i wrócić do miejsca, z którego została wywołana.
Składnia zwrotu
return (lista_wyrażeń)
Ta instrukcja może zawierać wyrażenie, które jest oceniane i zwracana jest wartość. Jeśli w instrukcji nie ma wyrażenia lub return
samej instrukcji nie ma wewnątrz funkcji, funkcja zwróci None
obiekt.
Na przykład:
>>> print(greet("May")) Hello, May. Good morning! None
Tutaj None
jest zwracana wartość, ponieważ greet()
bezpośrednio drukuje nazwę i nie return
jest używana żadna instrukcja.
Przykład zwrotu
def absolute_value(num): """This function returns the absolute value of the entered number""" if num>= 0: return num else: return -num print(absolute_value(2)) print(absolute_value(-4))
Wynik
2 4
Jak działa funkcja w Pythonie?

Zakres i czas życia zmiennych
Zakres zmiennej to część programu, w której zmienna jest rozpoznawana. Parametry i zmienne zdefiniowane wewnątrz funkcji nie są widoczne z zewnątrz funkcji. Dlatego mają zasięg lokalny.
Czas życia zmiennej to okres, przez który zmienna pozostaje w pamięci. Czas życia zmiennych wewnątrz funkcji jest tak długi, jak długo funkcja jest wykonywana.
Są niszczone, gdy wrócimy z funkcji. Dlatego funkcja nie pamięta wartości zmiennej z jej poprzednich wywołań.
Oto przykład ilustrujący zakres zmiennej wewnątrz funkcji.
def my_func(): x = 10 print("Value inside function:",x) x = 20 my_func() print("Value outside function:",x)
Wynik
Value inside function: 10 Value outside function: 20
Here, we can see that the value of x is 20 initially. Even though the function my_func()
changed the value of x to 10, it did not affect the value outside the function.
This is because the variable x inside the function is different (local to the function) from the one outside. Although they have the same names, they are two different variables with different scopes.
On the other hand, variables outside of the function are visible from inside. They have a global scope.
We can read these values from inside the function but cannot change (write) them. In order to modify the value of variables outside the function, they must be declared as global variables using the keyword global
.
Types of Functions
Basically, we can divide functions into the following two types:
- Funkcje wbudowane - funkcje wbudowane w Python.
- Funkcje zdefiniowane przez użytkownika - funkcje zdefiniowane przez samych użytkowników.