Funkcje są nieodłącznym elementem programowania, szczególnie w języku Python. Pozwalają na zwięzłe i czytelne zapisywanie bloków kodu odpowiadających za określone zadania. Jednak aby funkcje były jak najbardziej elastyczne i uniwersalne, często wykorzystuje się w nich mechanizm zwany argumentami funkcji.
Czym jest argument funkcji?
Argument funkcji to wartość, którą przekazujemy do funkcji w momencie jej wywoływania. Służy ona jako dane wejściowe, na podstawie których funkcja wykonuje obliczenia lub inne operacje. Dzięki argumentom ta sama funkcja może przyjmować różne wartości i zwracać różne wyniki, w zależności od przekazanych danych.
Na przykład funkcja dodawania może przyjmować jako argumenty dwie zmienne typu liczbowego, dodać je i zwrócić wynik. Przekazując za każdym razem inne wartości liczbowe, za każdym razem dostaniemy inny rezultat dodawania.
Jak działa argument w funkcji w Pythonie?
W Pythonie funkcja może przyjmować dowolną liczbę argumentów oddzielonych przecinkiem w nawiasach podczas deklaracji funkcji. Np.:
def dodaj(a, b):
return a + b
Tutaj zdefiniowaliśmy funkcję dodaj z dwoma argumentami - a i b. Następnie w ciele funkcji odwołujemy się do tych argumentów po prostu po ich nazwach i wykonujemy na nich operację dodawania, zwracając wynik.
Aby wywołać funkcję, podajemy wartości argumentów w nawiasach, np.:
wynik = dodaj(5, 7)
W tym przypadku zmienne a i b przyjmą wartości 5 i 7, funkcja je dodaje i zwraca wynik 12, który przypisywany jest do zmiennej wynik.
Dlaczego warto stosować argumenty funkcji?
Stosowanie argumentów funkcji ma wiele zalet:
- Pozwalają na wielokrotne wykorzystanie tego samego kodu dla różnych danych wejściowych.
- Czynią funkcje bardziej elastycznymi i uniwersalnymi.
- Ułatwiają testowanie funkcji dla różnych przypadków.
- Pozwalają oddzielić logikę funkcji od danych, na których operuje.
- Poprawiają czytelność i modularność kodu.
Argumenty funkcji - przykłady zastosowania w kodzie

Oto kilka przykładów wykorzystania argumentów funkcji w praktyce:
# Funkcja wypisująca tekst tyle razy, ile zostało podane w argumencie
def powtorz(tekst, ile_razy):
for i in range(ile_razy):
print(tekst)
powtorz("Cześć!", 3)
# Funkcja zwracająca większą z dwóch liczb
def wieksza(a, b):
if a > b:
return a
else:
return b
print(wieksza(4, 7))
Jak widać, dzięki argumentom funkcje stają się bardziej uniwersalne i łatwo dostosowywalne do różnych zadań i danych.
Argumenty domknięte vs argumenty pozycyjne - różnice
W Pythonie występują dwa podstawowe rodzaje argumentów funkcji:
- Argumenty pozycyjne - ich kolejność jest istotna, muszą być przekazywane w takiej samej kolejności, jak zdefiniowano je w funkcji.
- Argumenty domknięte - ich kolejność nie ma znaczenia, są przekazywane w postaci par klucz-wartość.
Na przykład, wywołując funkcję:
funkcja(a=5, b=10)
Wiemy, że a dostanie wartość 5, a b wartość 10, niezależnie od kolejności.
Natomiast w przypadku argumentów pozycyjnych:
funkcja(5, 10)
Musimy przekazać 5 jako pierwszy argument, a 10 jako drugi, bo kolejność jest istotna.
Ile argumentów może przyjmować funkcja w Pythonie?
W Pythonie funkcja może przyjmować dowolną liczbę argumentów. Możemy zdefiniować funkcję bez argumentów, z jednym, dwoma, trzema lub większą ich liczbą. Jedynym ograniczeniem jest tutaj dostępna pamięć komputera.
Dodatkowo, stosując parametry ze specjalnym oznaczeniem *args
i **kwargs
, funkcja może przyjmować także zmienną liczbę argumentów pozycyjnych i domkniętych.
Argumenty opcjonalne i domyślne - kiedy je stosować?
Czasem nie chcemy wymagać od użytkownika podania wszystkich argumentów przy każdym wywołaniu funkcji. Wtedy pomocne są argumenty opcjonalne i domyślne.
Argumenty opcjonalne deklarujemy ze znakiem zapytania, np.:
def funkcja(a, b, c=?):
Wówczas c
może, ale nie musi zostać podane przy wywołaniu.
Argumenty domyślne mają z góry przypisaną wartość, np.:
def funkcja(a, b, c=10):
Jeśli nie podamy wartości c
, zostanie automatycznie przyjęta wartość 10.
Dzięki temu funkcja jest bardziej elastyczna - można wywołać ją z 2 lub 3 argumentami.
Jak przekazywać wiele argumentów do funkcji w Pythonie?
Aby przekazać wiele argumentów do funkcji w Pythonie, możemy skorzystać z kilku sposobów:
- Po prostu wymienić je po przecinku - działa dla niewielkiej liczby argumentów.
- Umieścić w krotce lub liście i rozpakować operatorami
*
i**
. - Użyć parametrów
*args
i**kwargs
, które pozwalają na przyjęcie dowolnej liczby argumentów. - Zastosować argumenty domknięte, które nie wymagają zachowania kolejności.
Dzięki tym możliwościom funkcje w Pythonie mogą być wyjątkowo elastyczne i przetwarzać zmienną liczbę argumentów.
Podsumowanie
Argumenty funkcji są niezwykle przydatnym mechanizmem, pozwalającym na zwiększenie uniwersalności i elastyczności funkcji. Dzięki nim możemy wielokrotnie wykorzystywać ten sam kod dla różnych danych wejściowych oraz łatwo testować funkcje dla wielu scenariuszy. W Pythonie mamy możliwość zdefiniowania funkcji z dowolną liczbą argumentów pozycyjnych i domkniętych. Mechanizmy takie jak parametry *args
, **kwargs
czy argumenty opcjonalne i domyślne dodatkowo zwiększają możliwości. Dobre zrozumienie i wykorzystanie argumentów funkcji pozwoli na tworzenie bardziej elastycznego i modułowego kodu.