Python – #2 – Funkcja o zmiennej liczbie argumentów
Wprowadzenie.
W poniższym wpisie przedstawiam w jaki sposób jedna funkcja możemy pobierać zmienną liczbę argumentów.
Zakres artykułu.
- Funkcja o zmiennej liczbie argumentów
- Testy
Funkcja o zmiennej liczbie argumentów
W pierwszej kolejności napiszmy funkcję, która będzie przyjmowała jeden argument pozycyjny oraz jeden argument kluczowy. Taka funkcja na przykład może wyglądać następująco.
W tym jednak przypadku nasza funkcja może przyjąć maksymalnie 2 argumenty. Co jeśli będziemy chcieli napisać taką funkcję, która będzie przyjmowała nieokreśloną liczbę argumentów?
Pierwszym sposobem stworzenia takiej funkcji, jest zadeklarowanie parametru z gwiazdką. W ten oto sposób będziemy w stanie podać wiele argumentów do funkcji. Poniżej przedstawiam zmodyfikowany przykład pierwszej funkcji, gdzie trzeci parametr jest z gwiazdką.
W ten oto sposób od trzeciej pozycji, wszystkie argumenty zostaną przypisane do parametru par3 w postaci krotki (Tuple), przez co dalsze reguły odwoływania się do przesłanych wartości są takie same jak w typie danych krotka.
Drugim sposobem stworzenia funkcji, która przyjmuje nieokreśloną liczbę parametrów jest zadeklarowanie parametru z dwiema gwiazdkami. Różnica między pierwszym a drugim podejściem jest taka, że teraz podajemy wartości w postaci klucz – wartość.
W ten oto sposób od trzeciej pozycji, wszystkie argumenty zostaną przypisane do parametru par3 w postaci słownika (dictionary). Podając kolejne argumenty od pozycji 3, musimy pamiętać, aby podać najpierw klucz a następnie przypisać mu wartość. Ważną różnicą jest sposób odwoływania się do konkretnych argumentów, ponieważ w tym przypadku musimy skorzystać z konstrukcji par3.get(„nazwa_klucza”).
Tworząc funkcję możemy obydwie metody mieszać, tak jak przedstawiłem to na poniższym przykładzie. Do samodzielnego przećwiczenia i przetestowania proponuję pozmieniać pozycje parametrów i sprawdzić, kiedy jaka konstrukcja jest prawidłowa a kiedy nie.
Przykładowy program, który pozwoli nam przetestować powyższe funkcje może wyglądać następująco.
Na koniec zamieszczę, jeszcze kompletny program
Testy
Po uruchomieniu programu w konsoli powinniśmy otrzymać następujący efekt.