下面的练习参考了http://kodango.com/variable-arguments-in-python
# -*- coding: utf8 -*-
# 可变参数练习
#*args是表示一个不定长的序列
#**kwargs表示一组不定长度k=v的pair
def test1(first, *args, **kwargs):
print 'Required argument: ', first
for v in args:
print 'Optional argument: ', v
for k, v in kwargs.items():
print 'Optional argument %s: %s' % (k, v)
#尽管下面的函数定义时给出的是四个必填参数,
#但是却可以用可选参数的方式调用它
def test2(x1, x2, x3, x4):
print 'x1: ', x1
print 'x2: ', x2
print 'x3: ', x3
print 'x4: ', x4
if __name__=="__main__":
test1(1, 2, 3, 4, k1=5, k2=6)
print("=========================")
#以*args或者**kwargs调用一个有多个必填参数函数时,
#给出的参数个数必须严格等于函数定义时的参数个数
args = [1, 2, 3, 10]
test2(*args)
kwargs = {'x1': 1,'x2': 2,'x3': 3,'x4': 4}
test2(**kwargs)
输出如下: