前言:函數
# 函數參數中存在兩種特殊的參數,動態參數 *args、關鍵字參數 **kwargs。spa
# 在一個函數裏面只能有一個動態參數、關鍵字參數,能夠同時存在形參、默認參數、動態參數、關鍵字參數code
# 動態參數 *args、關鍵字參數 **kwargs 經常使用作不定長的輸入。blog
動態參數示例代碼:
# 動態參數 *args def a_1(*args): print(args) if __name__ == '__main__': a_1(1,2,3,4,5) v = (1,2,3,4,5) a_1(v) # >>>((1,2,3,4,5),) 元祖內只有一個元素時,元素後一定是接了一個逗號 a_1(*v) # >>>(1,2,3,4,5) 使用 * 且只能去一層()或者[] v_1 = [(1,2,3,4,5),(6,7,8)] a_1(*v_1) # >>>((1,2,3,4,5),(6,7,8)) # 列表內嵌套列表(經常使用) v_2 = [[1,2,3,4,5],[6,7,8]] a_1(*v_2) # >>>([1,2,3,4,5],[6,7,8]) v_3 = {'a':'1', 'b':'2'} a_1(*v_3) # >>>(a, b)
# 列表內嵌套字典(經常使用) v_4 = [{'a':'1', 'b':'2'}, {'c':'3', 'd':'4'}] a_1(*v_4) # >>>({'a':'1', 'b':'2'}, {'c':'3', 'd':'4'})
關鍵字參數示例代碼:class
關鍵字參數傳參必須是以鍵值對的方式傳參 x=value語法
# 關鍵字參數 *kwargs def a_2(**kwargs): print(kwargs) if __name__ == '__main__':
v = {'a':'1', 'b':'2'} # a_2(v) # >>>語法錯誤 a_2(x=v) # >>>{"x": "{'a':'1', 'b':'2'}"} a_2(**v) # {'a':'1', 'b':'2'}(經常使用)