python 函數 定義過程中參數的設置有一個問題
def func1( a, b, c=1, d=1, *args): ###默認參數必須在*args前, 但調用函數過程卻會有問題(因爲調用函數時輸入的參數必須是keyword arg 放後面)
print a,b,c,args # 但是 這就導致如果有變長的args輸入了,默認參數要麼被變長args覆蓋,要麼調用時再次輸入默認值, 這就導致默認參數默認值沒作用!
解決的辦法可以是 使用**kwargs
def func1(a,b,*args, **kwargs):
c= kwargs.pop('c', 1)
d= kwargs.pop('d', 1) ### 取出kwargs中的 ‘d' ,如果沒有則取默認值 1