0Pricing
Python Academy · Lekcja

Argumenty domyślne i nazwane

Proszę używać domyślnych wartości parametrów oraz składni wywołań z argumentami nazwanymi.

Argumenty domyślne i nazwane to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Domyślne wartości parametrów i składnia wywołań z argumentami nazwanymi sprawiają, że funkcje Pythona są elastyczne i lepiej opisują swoje działanie.

Domyślne wartości parametrów

def greet(name, greeting='Hello'): nadaje greeting wartość domyślną. Wywołujący może ją pominąć.
def greet(name, greeting='Hello'):
    print(f'{greeting}, {name}!')
greet('Alice')
greet('Bob', 'Hi')

Argumenty nazwane

Wywołuj funkcję z użyciem nazw: greet(name='Alice', greeting='Hi'). Kolejność nie ma znaczenia przy używaniu argumentów nazwanych.
def describe(name, age, city):
    print(f'{name}, {age}, {city}')
describe(age=30, city='NYC', name='Alice')

Łączenie argumentów pozycyjnych i nazwanych

W wywołaniu argumenty pozycyjne muszą występować przed argumentami nazwanymi. describe('Alice', city='NYC', age=30) jest poprawne.
def f(a, b, c='default'):
    print(a, b, c)
f(1, c='X', b=2)

Pułapka związana ze zmiennymi wartościami domyślnymi

NIGDY nie używaj zmiennych wartości domyślnych: def f(lst=[]) współdzieli tę samą listę między wszystkimi wywołaniami. Zamiast tego użyj def f(lst=None): lst = lst or [].
def append(x, lst=None):
    if lst is None:
        lst = []
    lst.append(x)
    return lst
print(append(1))
print(append(2))

Argumenty tylko nazwane

Parametry występujące po * muszą być wywoływane po nazwie: def f(a, *, b): tylko b nie może być przekazywane pozycyjnie. Wymusza to większą czytelność.
def f(a, *, b):
    return a + b
print(f(1, b=2))

Argumenty tylko pozycyjne (3.8+)

Parametry występujące przed / muszą być przekazywane pozycyjnie: def f(a, b, /, c): a i b nie mogą być wywoływane po nazwie.
def f(a, b, /, c=0):
    return a + b + c
print(f(1, 2, c=3))

**kwargs

def f(**kwargs) zbiera dodatkowe argumenty nazwane do słownika. Jest to przydatne podczas przekazywania opcji dalej.
def show(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}={v}')
show(name='Alice', age=30)

Łączenie *args i **kwargs

def f(*args, **kwargs) akceptuje dowolną kombinację argumentów pozycyjnych i nazwanych.
def debug(*args, **kwargs):
    print('args:', args)
    print('kwargs:', kwargs)
debug(1,2,x=3)

Rozpakowywanie w wywołaniach

f(*[1,2,3]) rozkłada listę na argumenty pozycyjne. f(**{'a':1}) rozkłada słownik na argumenty nazwane.
def add(a, b, c): return a+b+c
d = {'a':1,'b':2,'c':3}
print(add(**d))

Częściowa aplikacja

from functools import partial; double = partial(pow, exp=2) ustala niektóre argumenty z wyprzedzeniem.
from functools import partial
def power(base, exp): return base ** exp
square = partial(power, exp=2)
print(square(5))

Szybkie sprawdzenie

Jakie zagrożenie wiąże się z używaniem zmiennego argumentu domyślnego, takiego jak def f(lst=[])?

Podsumowanie

Argumenty domyślne: def f(x=val). Wywołania z argumentami nazwanymi: f(x=val). Unikaj zmiennych wartości domyślnych. Używaj * dla argumentów tylko nazwanych, / dla argumentów tylko pozycyjnych, a **kwargs do zbierania dodatkowych argumentów.

Kontynuuj naukę

Świetna praca! Przejdź do następnej lekcji, aby dalej się rozwijać.

Często zadawane pytania

Czy lekcja „Argumenty domyślne i nazwane” jest bezpłatna?

Tak — pełny tekst „Argumenty domyślne i nazwane” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Argumenty domyślne i nazwane”?

Proszę używać domyślnych wartości parametrów oraz składni wywołań z argumentami nazwanymi. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Argumenty domyślne i nazwane”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie i wywoływanie funkcji
  2. Argumenty domyślne i nazwane
  3. args i kwargs
  4. Wartości zwracane i zakres
← Powrót do Python Academy