CodeGym /Kursy /Python SELF PL /Zaawansowana praca z parametrami

Zaawansowana praca z parametrami

Python SELF PL
Poziom 6 , Lekcja 5
Dostępny

11.1 Nieskończona liczba parametrów

W Pythonie funkcje mogą być zaprojektowane tak, aby przyjmowały nieskończoną ilość parametrów. Osiąga się to za pomocą argumentów przekazywanych przez *args dla zwykłych parametrów i **kwargs dla parametrów zadanych po nazwie.

Użycie *args

*args pozwala funkcji przyjmować dowolną liczbę pozycyjnych argumentów, które funkcja będzie postrzegać jako krotkę. Przykład użycia:


def print_all(*args):
    for item in args:
        print(item)
        
print_all(1, 'apple', True)  # wyświetli 1, apple i True.
        

Zmienna args będzie zawierać krotkę wszystkich parametrów, które zostały przekazane do funkcji przy jej wywołaniu.

Użycie **kwargs

**kwargs działa podobnie do *args, ale dla argumentów zadanych po nazwie, przedstawionych w formie słownika. To pozwala funkcji przyjmować dowolną liczbę nazwanych argumentów:


def print_named_items(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
        
print_named_items(fruit='apple', number=1)  # wyświetli fruit: apple i number: 1
        

Te mechanizmy czynią funkcje niezwykle elastycznymi i użytecznymi w scenariuszach, gdzie liczba parametrów jest nieznana z góry, na przykład przy tworzeniu API albo funkcji obsługi zdarzeń.

Szczegółowo oba te przypadki omówimy później, ale musicie wiedzieć, że w Pythonie wewnątrz funkcji można bardzo łatwo uzyskać dostęp do wszystkich argumentów, które do niej przekazano. A przekazać w funkcji można wszystko, co chcecie.

11.2 Określenie typów

Jak wiecie, zmienne w Pythonie nie mają z góry określonego typu. Każdej zmiennej można przypisać wartość dowolnego typu, a w następnym wierszu przypisać wartość nowego typu itd.

To bardzo wygodne dla małych programów i nieco mniej dla dużych. Kiedy program jest bardzo duży i liczba funkcji idzie w tysiące, programista nie może zapamiętać, jakie dokładnie dane należy przekazać do funkcji i w jakiej kolejności.

W językach ze statycznym typowaniem IDE sama podpowiada programistom, jakie parametry i z jakimi typami trzeba przekazać przy wywołaniu funkcji. A Python - to wciąż język z dynamicznym typowaniem, i tu takie podpowiedzi nie mają skąd się pojawić.

Dlatego twórcy Pythona wymyślili taką rzecz, jak type hinting. To coś w rodzaju typów zmiennych, ale są raczej rekomendacjami niż typami. Żadne ograniczenia wskazane typy nie narzucają.

Określenie typów zostało wprowadzone w Pythonie 3.5 i zyskało popularność dzięki standardowi PEP 484. To mechanizm, który pozwala programistom określać oczekiwane typy zmiennych, argumentów i wartości zwracanych funkcji.

Chociaż Python pozostaje językiem dynamicznie typowanym, określenie typów dodaje jasności i wspiera statyczne sprawdzanie typów. Przykłady określenia typów:


def add_numbers(a: int, b: int) -> int:
    return a + b
        

Typ zmiennej określa się przez dwukropek, a typ zwracanego wyniku funkcji przez strzałkę.

Zalety, jakie daje określenie typu-rekomendacji:

  • Poprawa dokumentacji: Jawne określenie typów sprawia, że kod staje się samodokumentujący.
  • Lepsza autouzupełnianie: Edytory kodu mogą wykorzystywać informacje o typach do poprawy autouzupełniania.
  • Pomoc w debugowaniu: Statyczne sprawdzanie typów może wykrywać potencjalne błędy jeszcze przed uruchomieniem programu.

Narzędzia do pracy z typami

Sam Python w żaden sposób nie reaguje na zadeklarowane typy zmiennych. Zamiast tego Python ma specjalne narzędzie — mypy — popularny statyczny analizator typów, który pomaga wyłapywać błędy w kodzie, wykorzystującym określenie typów.

1
Опрос
Funkcje w Python,  6 уровень,  5 лекция
недоступен
Funkcje w Python
Funkcje w Python
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION