Giả sử tôi có một số funciton, f
Làm cách nào để bỏ qua các đối số từ khóa không mong muốn được chuyển đến một hàm?
def f (a=None):
print a
Bây giờ, nếu tôi có một cuốn từ điển như dct = {"a":"Foo"}
, tôi có thể gọi f(**dct)
và nhận được kết quả Foo
in.
Tuy nhiên, giả sử tôi có từ điển dct2 = {"a":"Foo", "b":"Bar"}
. Nếu tôi gọi f(**dct2)
Tôi nhận được
TypeError: f() got an unexpected keyword argument 'b'
Đủ công bằng. Tuy nhiên, có anyway để, trong định nghĩa của f
hoặc trong kêu gọi của nó, nói với python để chỉ bỏ qua bất kỳ phím mà không phải là tên tham số? Ưu tiên phương thức cho phép xác định mặc định.
Tôi nghĩ rằng đây là những gì OP đang tìm kiếm. –
Cũng lưu ý rằng 'f (10, b = 20)' sẽ in '10' ở đây, điều này sẽ không đúng nếu bạn chỉ lấy' ** kwargs'. – abarnert
Nhưng nếu chức năng được tạo bởi những người khác (ví dụ: thư viện nguồn mở), tôi không thể làm điều đó –