Trong Python 2.x (tôi sử dụng 2.7), cách thích hợp để sử dụng các đối số mặc định với *args
và **kwargs
?
Tôi đã tìm thấy một câu hỏi trên SO liên quan đến chủ đề này, nhưng đó là Python 3 :
Gọi một hàm Python với * args, ** kwargs và các đối số tùy chọn / mặc định
Ở đó, họ nói rằng phương pháp này hoạt động:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
Trong 2.7, kết quả là a SyntaxError
. Có cách nào được khuyến nghị để xác định một chức năng như vậy không?
Tôi đã làm cho nó hoạt động theo cách này, nhưng tôi đoán có một giải pháp tốt hơn.
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...