前言:
# 函数参数中存在两种特殊的参数,动态参数 *args、关键字参数 **kwargs。
# 在一个函数里面只能有一个动态参数、关键字参数,可以同时存在形参、默认参数、动态参数、关键字参数
# 动态参数 *args、关键字参数 **kwargs 常用做不定长的输入。
动态参数示例代码:
# 动态参数 *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'})
关键字参数示例代码:
关键字参数传参必须是以键值对的方式传参 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'}(常用)