Tôi có hàm Python, fetch_data
, truy cập API từ xa, lấy một số dữ liệu và trả về dữ liệu trong đối tượng phản hồi. Nó trông hơi giống như dưới đây:Nhận tất cả đối số và giá trị được chuyển đến hàm
def fetch_data(self, foo, bar, baz, **kwargs):
response = Response()
# Do various things, get some data
return response
Bây giờ, nó có thể là dữ liệu đáp ứng nói: "Tôi có nhiều dữ liệu hơn, hãy gọi cho tôi với một tăng lên page
tham số để có được nhiều hơn". Vì vậy, về cơ bản, tôi muốn lưu trữ "Phương thức gọi" (chức năng, tham số) trong đối tượng phản hồi, vì vậy tôi có thể có một số Response.get_more()
xem xét chức năng và thông số được lưu trữ và gọi lại hàm đó (gần như) cùng thông số, trả lại một mới Response
Bây giờ nếu fetch_data
được định nghĩa là fetch_data(*args, **kwargs)
tôi chỉ có thể lưu trữ (fetch_data, args, kwargs)
trong response
. Tuy nhiên, tôi có self
, foo
, bar
và baz
để lo lắng - Tôi chỉ có thể lưu trữ (fetch_data, foo, bar, baz, kwargs)
nhưng đó là một số lượng rất không mong muốn lặp lại.
Về cơ bản, tôi đang cố gắng tìm ra cách, từ bên trong một hàm, nhận được một số hoàn toàn phổ biến *args
và **kwargs
, bao gồm các tham số được đặt tên của hàm.
Tại sao không chuyển foo, bar, baz và kwarg sang hàm dựng Response() để sau này gọi đến response.get_more() đã có các giá trị đó? – kurosch
Vì điều đó không khắc phục được sự cố - tôi vẫn cần phải chạm vào 'Phản hồi' nếu tôi thay đổi chữ ký của' fetch_data'. –
Có lẽ đó là một điều tốt? – kurosch