0Pricing
Python Academy · Lekcja

args i kwargs

Proszę przyjmować argumenty pozycyjne i nazwane o zmiennej długości.

args i kwargs to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 3 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

*args i **kwargs pozwalają funkcjom przyjmować zmienną liczbę argumentów pozycyjnych i nazwanych.

Czym jest *args?

def f(*args) zbiera wszystkie dodatkowe argumenty pozycyjne do krotki o nazwie args.
def f(*args):
    print(args)
f(1, 2, 3)  # (1, 2, 3)

Iterowanie po *args

for x in args: ... działa, ponieważ args jest krotką. Można również używać sum(args), max(args) itd.
def total(*args):
    return sum(args)
print(total(1, 2, 3, 4, 5))

Czym jest **kwargs?

def f(**kwargs) zbiera wszystkie dodatkowe argumenty nazwane do słownika o nazwie kwargs.
def f(**kwargs):
    print(kwargs)
f(name='Alice', age=30)

Używanie **kwargs

Uzyskuj dostęp do kwargs tak jak do dowolnego słownika: for key, val in kwargs.items():
def display(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}: {v}')
display(x=1, y=2)

Łączenie zwykłych parametrów, *args i **kwargs

def f(a, b, *args, **kwargs): najpierw występują zwykłe parametry, potem *args, następnie parametry tylko nazwane, a na końcu **kwargs.
def f(a, *args, **kwargs):
    print(a, args, kwargs)
f(1, 2, 3, x=4)

Przekazywanie argumentów dalej

def wrapper(*args, **kwargs): return real_func(*args, **kwargs) dokładnie przekazuje wszystkie argumenty do opakowanej funkcji.
def real(a, b, c=0): return a+b+c
def wrapper(*args, **kwargs): return real(*args, **kwargs)
print(wrapper(1, 2, c=3))

Rozpakowywanie za pomocą * w wywołaniach

*iterable rozpakowuje dowolny obiekt iterowalny na argumenty pozycyjne. **mapping rozpakowuje słownik na argumenty nazwane.
def add(a, b, c): return a+b+c
args = [1, 2, 3]
print(add(*args))

Rozszerzone rozpakowywanie obiektów iterowalnych

first, *rest = [1,2,3,4] daje first=1 oraz rest=[2,3,4]. *head, last = lst przypisuje ostatni element.
first, *rest = [1, 2, 3, 4]
print(first, rest)
*head, last = [1, 2, 3]
print(head, last)

Adnotacje typów dla *args/**kwargs

def f(*args: int, **kwargs: str) adnotuje typ każdego pojedynczego elementu, a nie kontenera.
def f(*args: int, **kwargs: str) -> None:
    print(args, kwargs)
f(1, 2, name='Alice')

Typowe wzorce

Sama funkcja print() używa *args — print(*my_list) wypisuje każdy element, oddzielając je spacjami. To bardzo typowe dla Pythona.
lst = [1, 2, 3]
print(*lst)  # 1 2 3

Szybkie sprawdzenie

Jaki typ ma *args wewnątrz funkcji?

Podsumowanie

*args to krotka dodatkowych argumentów pozycyjnych. **kwargs to słownik dodatkowych argumentów nazwanych. Używaj ich do tworzenia elastycznych interfejsów API i przekazywania argumentów dalej.

Kontynuuj naukę

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

Często zadawane pytania

Czy lekcja „args i kwargs” jest bezpłatna?

Tak — pełny tekst „args i kwargs” 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 „args i kwargs”?

Proszę przyjmować argumenty pozycyjne i nazwane o zmiennej długości. Ć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 3 z 4.

Ile czasu zajmuje lekcja „args i kwargs”?

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