Python中的可变参数*args和**kwargs

时间:2022-11-12 21:25:59
#!/usr/bin/env python
#-*- coding:utf8 -*-
"""
*args和**kwargs这两个参数是Python中的可变参数。
*args是一个tuple,表示任意多个无名参数(non-keyword arg);
**kwargs是一个dict,表示任意多个关键字参数(keyword arg)。
同时使用*args和**kwargs时,必须*args参数列要在**kwargs前。
"""
def test(*args, **kwargs):
    print 'args:', args
    print 'kwargs', kwargs
    print '----------------------------'

if __name__ == '__main__':
    test(1, 2, 3)
    test(a=1, b=2, c=3)
    test(1, 2, 3, a=1, b=2, c=3)
    
"""
args: (1, 2, 3)
kwargs {}
----------------------------
args: ()
kwargs {'a': 1, 'c': 3, 'b': 2}
----------------------------
args: (1, 2, 3)
kwargs {'a': 1, 'c': 3, 'b': 2}
----------------------------
"""