Với một hàm:Làm thế nào tôi có thể thay đổi lập trình argspec của một hàm trong một trình trang trí python?
def func(f1, kw='default'):
pass
bare_argspec = inspect.getargspec(func)
@decorator
def func2(f1, kw='default'):
pass
decorated_argspec = inspect.getargspec(func2)
Làm thế nào tôi có thể tạo ra một trang trí như vậy mà bare_argspec == decorated_argspec
?
(Đối với lý do tại sao, khung gọi hàm được trang trí thực hiện kiểm tra argspec để chọn nội dung cần truyền vào, vì vậy trang trí phải giữ lại cùng một argspec để phát đẹp. Khi tôi đặt câu hỏi này trên #python, Tôi đã có một bài phát biểu dài về lý do tại sao khuôn khổ hút, đó không phải là những gì tôi đang tìm kiếm; Tôi phải giải quyết vấn đề ở đây. Ngoài ra, tôi cũng chỉ quan tâm đến câu trả lời)
Cú phápError: cú pháp không hợp lệ - Tôi nghĩ bạn có nghĩa là 'def func (...' –