Oznacza koniec parametrów tylko pozycyjnych , parametrów, których nie można używać jako parametrów słów kluczowych. Przed Pythonem 3.8 takie parametry można było określić tylko w C API.
Oznacza to, że key
argument do __contains__
można przekazać tylko przez funkcję position ( range(5).__contains__(3)
), a nie jako słowo kluczowe argument ( range(5).__contains__(key=3)
), co można zrobić z argumentami pozycyjnymi w funkcjach czystego języka Python.
Zobacz także dokumentację Argument Clinic :
Aby oznaczyć wszystkie parametry jako tylko pozycyjne w Argument Clinic, dodaj osobny /
wiersz po ostatnim parametrze, z wcięciem tak samo jak wiersze parametrów.
oraz (bardzo niedawny dodatek do) Python FAQ :
Ukośnik na liście argumentów funkcji oznacza, że parametry przed nią są tylko pozycyjne. Parametry tylko pozycyjne to te, które nie mają nazwy do użytku zewnętrznego. Po wywołaniu funkcji, która akceptuje parametry tylko pozycyjne, argumenty są mapowane na parametry wyłącznie na podstawie ich pozycji.
Składnia jest teraz częścią specyfikacji języka Python, od wersji 3.8 , patrz PEP 570 - Parametry tylko pozycyjne języka Python . Przed PEP 570 składnia była już zarezerwowana do ewentualnego przyszłego włączenia do Pythona, zobacz PEP 457 - Składnia parametrów tylko pozycyjnych .
Parametry tylko pozycyjne mogą prowadzić do czystszych i bardziej przejrzystych interfejsów API, czynić implementacje czysto Pythonowych modułów tylko w języku C bardziej spójne i łatwiejsze w utrzymaniu, a ponieważ parametry tylko pozycyjne wymagają bardzo niewielkiego przetwarzania, prowadzą do szybszego kodu Pythona.
/
tokena, ponieważ „to operacja odwrotna do*
” pokazuje, że Python jest trochę szalony. To rodzaj synestezji.Ukośnik (/) wskazuje, że wszystkie argumenty przed nim są argumentami wyłącznie pozycyjnymi. Funkcja argumentów tylko pozycyjnych została dodana w Pythonie 3.8 po zaakceptowaniu PEP 570 . Początkowo notacja ta została zdefiniowana w PEP 457 - Notacja dla notacji dla parametrów tylko pozycyjnych
Weźmy następujący przykład
Tutaj w powyższej definicji funkcji parametry a i b są tylko pozycyjne, podczas gdy x lub y mogą być pozycyjne lub kluczowe.
Następujące wywołania funkcji są prawidłowe
Ale następujące wywołanie funkcji nie jest prawidłowe, co powoduje wyjątek TypeError, ponieważ a, b nie są przekazywane jako argumenty pozycyjne zamiast tego przekazywane jako słowo kluczowe
Wiele funkcji wbudowanych w Pythonie akceptuje tylko argumenty pozycyjne, w przypadku których przekazywanie argumentów przez słowo kluczowe nie ma sensu. Na przykład funkcja wbudowana len akceptuje tylko jeden argument pozycyjny (tylko). Gdy wywołanie len jako len (obj = "hello world") osłabia czytelność, sprawdź help (len).
Parametry tylko pozycyjne sprawiają, że podstawowe funkcje biblioteki c / są łatwe w utrzymaniu. Pozwala to na zmianę nazw parametrów parametrów pozycyjnych w przyszłości bez ryzyka złamania kodu klienta używającego API
Wreszcie, parametry tylko pozycyjne pozwalają nam używać ich nazw w argumentach słów kluczowych o zmiennej długości. Sprawdź poniższy przykład
Parametry tylko pozycyjne są lepiej wyjaśnione tutaj w Typy argumentów funkcji w pythonie: Parametry tylko pozycyjne
Składnia parametrów tylko pozycyjnych została oficjalnie dodana do pythona3.8. Zamówienie nowości python3.8 - pozycyjne tylko argumenty
Powiązane z PEP: PEP 570 - parametry tylko pozycyjne w języku Python
źródło