nghiên cứu bản thân mình vào một góc một lần nữa ...func (* args, ** kwargs, x) ném không hợp lệ cú pháp
def superfunction(*args, **kwargs, k):
^
SyntaxError: invalid syntax
Whats sự cai trị Im phá vỡ ở đây? Có vẻ như bạn không được phép kết hợp các biến 'thông thường' với các biến *, nhưng tôi không thể tìm thấy bất kỳ ai để xác nhận hoặc từ chối điều này. Tôi đọc ở đâu đó (và bây giờ tôi không thể tìm thấy) rằng một số loại đối số phải đến trước, tôi tin rằng các đối số từ khóa, có thể hoặc không phải là một phần của vấn đề của tôi.
Chi tiết về chính xác lý do tại sao sự cố này sai khác một chút giữa Python 2.x và 3.x; xem phần hướng dẫn [Các đối số từ khóa] (http://docs.python.org/2/tutorial/controlflow.html#keyword-arguments) và phần tham chiếu [Định nghĩa chức năng] (http://docs.python.org/ 2/reference/compound_stmts.html # function) cho phiên bản thích hợp của bạn có các chi tiết. Nhưng một thời gian ngắn, không có gì có thể đến sau tham số '**'. – abarnert
Tôi cũng có một [bài đăng blog] (http://stupidpythonideas.blogspot.com/2013/08/arguments-and-parameters.html) giải thích đầy đủ chi tiết; Tôi không nghĩ rằng đó là ở tất cả những người mới thân thiện ... nhưng tôi hy vọng nó ít nhất là dễ dàng hơn một chút so với đọc tài liệu tham khảo. (Tuy nhiên, cụ thể là Python 3) – abarnert