python可变参数 - *args, **kwargs

def foo(*args, **kwargs):
    print('args = ', args)
    print('kwargs = ', kwargs)
    print('---------------------------------------')

if __name__ == '__main__':
    foo(1, 2, 3, 4)
    foo(a = 1, b = 2, c = 3)
    foo(1, 2, 3, 4, a = 1, b = 2, c = 3)
    foo('a', 1, None, a = 1, b = '2', c = 3)

输出结果如下:

args =  (1, 2, 3, 4) 
kwargs =  {} 
--------------------------------------- 
args =  () 
kwargs =  {'a': 1, 'c': 3, 'b': 2} 
--------------------------------------- 
args =  (1, 2, 3, 4) 
kwargs =  {'a': 1, 'c': 3, 'b': 2} 
--------------------------------------- 
args =  ('a', 1, None) 
kwargs =  {'a': 1, 'c': 3, 'b': '2'} 
---------------------------------------

结论:
*args为元组可变参数,以非等号标志符提取
**kwargs为字典可变参数,以=号为标志符提取

猜你喜欢

转载自blog.csdn.net/ZenG_xiangt/article/details/81628085
今日推荐