392
Rozdział 10.
owniki argumentów
Przyjmowanie słowników argumentów
Jeśli chodzi o przesyłanie wartości do funkcji, możliwe jest również podawanie nazw
argumentów wraz ze związanymi z nimi wartościami i pozostawienie interpreterowi
odpowiedniego dopasowania ich w wywołaniu funkcji.
Ze sposobem tym spotkałeś się po raz pierwszy w
rozdziale 4.
, gdy użyliśmy go
w wywołaniu funkcji
search4letters
, która jak być może pamiętasz oczekuje
podania dwóch wartości argumentów, jednej dla argumentu
phrase
, a drugiej dla
argumentu
letters
. Gdy korzysta się ze słów kluczowych argumentów, kolejność
argumentów przestaje mieć znaczenie.
Przekaż funkcję
do funkcji.
Zwróć funkcję
z funkcji.
Przetwórz dowolną
liczbę i typ argumentów.
search4letters(letters=’tym’, phrase=’galaktyka’)
def search4letters(phrase:str, letters:str=’aeiou’) -> set:
A to inny sposób
jej wywołania.
To jest jeden
ze sposobów
wywołania
tej funkcji.
Podobnie jak ma to miejsce w przypadku zastosowania list, można również sprawić, aby funkcja przyjmowała
dowolną liczbę słów kluczowych argumentów, czyli kluczy wraz z powiązanymi z nimi wartościami (dokładnie
tak, jak w przedstawionym powyżej przykładzie z argumentami
phrase
i
letters
).
Użyj znaków **, aby funkcja przyjmowała dowolne argumenty ze słowami kluczowymi
Oprócz symbolu
*
język Python umożliwia stosowanie zapisu
**
, który powoduje rozwinięcie argumentu
do postaci kolekcji argumentów ze słowami kluczowymi. Podczas gdy w przypadku
*
zgodnie z konwencją
korzysta się z nazwy zmiennej
args
, przy stosowaniu
**
używa się nazwy
kwargs
, stanowiącej skrót od
angielskich słów
keyword arguments, czyli „argumenty ze słowami kluczowymi”. (Zauważ, że możesz w tym
kontekście stosować inne nazwy niż
args
i
kwargs
, robi to jednak bardzo niewielu programistów Pythona).
Przyjrzyjmy się innej funkcji, o nazwie
myfunc2
, która przyjmuje dowolną liczbę argumentów ze słowami
kluczowymi.
Wewnątrz funkcji argument
kwargs zachowuje się
dokładnie tak, jak każdy
inny słownik.
Zapis ** informuje
funkcję, że ma się
spodziewać argumentów
ze słowami kluczowymi.
Weź każdą parę
klucz-wartość
ze słownika
i wyświetl
na ekranie.
Przyjmij,
że zapis **
oznacza
rozwinięcie
do słownika
zawierającego
klucze
i wartości.

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.