Studiował się na kolejny róg ...func (* args, ** kwargs, x) rzucanie nieprawidłowa składnia
def superfunction(*args, **kwargs, k):
^
SyntaxError: invalid syntax
Jaka jest zasada Im łamanie tutaj? Wygląda na to, że nie należy mieszać "zwykłych" zmiennych ze zmiennymi *, ale nie mogę znaleźć nikogo, kto by to potwierdził lub zaprzeczył. Czytałem gdzieś (i nie mogę teraz znaleźć), że niektóre typy argumentów muszą być pierwsze, uważam argumenty za słowa kluczowe, które mogą, ale nie muszą być częścią mojego problemu.
Szczegóły dokładnie, dlaczego to jest złe są nieco odmienne od Pythona 2.x oraz 3.x; patrz rozdział ma [Argumenty Złożone] (http://docs.python.org/2/tutorial/controlflow.html#keyword-arguments), a samym przekrojem odniesienia [definicje funkcji] (http://docs.python.org/ 2/reference/compound_stmts.html # function) dla odpowiedniej wersji zawiera szczegóły. Krótko mówiąc, nic nie może nadejść po parametrze "**". – abarnert
Ja również dostałem [blogu] (http://stupidpythonideas.blogspot.com/2013/08/arguments-and-parameters.html), który wyjaśnia szczegóły; Nie wydaje mi się, żeby był przyjazny dla początkujących ... ale mam nadzieję, że jest to przynajmniej trochę łatwiejsze niż czytanie dokumentów referencyjnych. (Jest to Python 3-specyficzny, jednak.) – abarnert