Argumenty pozycyjne a argumenty słów kluczowych
Powiązany artykuł:
- Funkcje
- Przekazywanie funkcji jako argumentu
- Asterysks w Pythonie
Transkrypt:
Porozmawiajmy o dwóch typach argumentów, których można użyć podczas wywoływania funkcji:argumentach pozycyjnych i argumentach nazwanych (a.k.a. keyword arguments).
Argumenty pozycyjne
Gdy wywołujesz wbudowaną funkcję print
, możesz przekazać dowolną liczbę argumentów pozycyjnych.Przekazujemy tutaj cztery argumenty pozycyjne:
>>> print(2, 1, 3, 4)2 1 3 4
Nazwiemy je argumentami pozycyjnymi, ponieważ ich pozycja ma znaczenie.Kolejność tych argumentów jest istotna: pierwszy argument jest wypisywany jako pierwszy; ostatni jako ostatni.
Keyword arguments (a.k.a. named arguments)
Funkcja print
przyjmuje również niektóre argumenty jako argumenty słowa kluczowego.
Funkcja print
przyjmuje opcjonalny argument sep
(który domyślnie przyjmuje znak spacji).
>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4
Ten argument sep
określa separator, który powinien zostać wypisany między każdym z argumentów pozycyjnych przekazanych do funkcji print
.
Istnieje również opcjonalny argument słowa kluczowego end
.Argument end
domyślnie przyjmuje znak nowej linii:
>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4
Możemy jednak umieścić wykrzykniki w argumencie end
(przed nową linią), aby wypisać wykrzykniki na końcu:
>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!
Porządek argumentów słów kluczowych nie ma znaczenia
Porządek argumentów sep
i end
funkcji print
nie ma w rzeczywistości znaczenia.
>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!
Porządek nie ma z nimi znaczenia, ponieważ nie są to argumenty pozycyjne: są to argumenty nazwane.
Argumenty pozycyjne mają przecinki między swoimi wartościami.
>>> print(2, 1, 3, 4)2 1 3 4
Argumenty słów kluczowych (a.k.a. named arguments) mają nazwę i znak równości oprócz tych wartości i przecinków.
>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!
Keyword arguments must come after any positional arguments.Beyond that, the position of keyword arguments doesn’t matter at all: it’s the name that matters not the position.
Uusing keyword arguments instead of positional arguments
Keyword arguments are not just useful for functions that accept any number of positional arguments (like print
).Możesz przekazać argumenty słów kluczowych do prawie każdej funkcji w Pythonie.
Na przykład, wbudowana funkcja sum
przyjmuje pierwszy argument:
>>> sum()10
Ale przyjmuje również drugi argument, który domyślnie wynosi zero:
>>> sum(, 0)10
Jeśli zmienimy ten drugi argument na 1
, zobaczymy, że jest to wartość początkowa dla zwracanego sumowania:
>>> sum(, 1)11
Wolałbym raczej zobaczyć tę funkcję wywołaną w ten sposób:
>>> sum(, start=1)11
Przekazujemy jeden argument pozycyjny i jeden argument słowa kluczowego.
Ten start=1
działa z sum
, ponieważ start
jest nazwą tego argumentu.W dokumentacji funkcji sum
mówi się, że drugi argument, który nazywa się start
:
>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.
Więc kiedy pracujesz z nazwanymi argumentami (a.k.a. keyword arguments) nazwa argumentu faktycznie ma znaczenie! Podczas gdy kiedy pracujesz z argumentami pozycyjnymi, to pozycja jest istotna.
Podsumowanie
Gdy wywołujemy funkcję w Pythonie, możemy przekazać dwa różne typy argumentów:
- argumenty pozycyjne
- argumenty nazwane (a.k.a. keyword arguments)
Argumenty nazwane mogą czasami sprawić, że twój kod będzie nieco bardziej opisowy, ponieważ nadałeś nazwę obiektowi, którego użycie mogłoby nie być jasne na podstawie jego pozycji w wywołaniu funkcji.
Chcesz zobaczyć więcej wyjaśnień na tematy związane z Pythonem?
Witaj przyjacielu! 👋
Ta strona jest częścią Kąsków Pythona, usługi online budowania umiejętności Pythona.
Najlepszym sposobem na naukę jest działanie. W przypadku Pythona oznacza to pisanie kodu Pythona. Jeśli chciałbyś co tydzień doskonalić swoje umiejętności w Pythonie, wypróbuj Python Morsels, wpisując poniżej swój adres e-mail, aby utworzyć konto.
Strony tematyczne Python Morsels są darmowe, a pierwszy miesiąc ćwiczeń jest również darmowy. Nie musisz podawać szczegółów płatności, aby się zarejestrować.
Możesz znaleźć wyjaśnienia wielu innych tematów związanych z Pythonem, zapisując się poniżej.
Zapisując się, zgadzasz się z Polityką Prywatności.