def f(name, gender = 'male', *args, **kw):
pass
位置参数:name
默认参数:gender
非关键字可变长参数:args
关键字参数:kw
tips:四者的顺序必须是(位置参数)+(默认参数)+(非关键字可变长参数)+(关键字参数)
特殊情况:
def f(name, gender = 'male', *args, **kw):
print 'name: %s' % name
print 'gender: %s' % gender
if args != ():
#print 'args: %d' % args
# for x in args:
# print 'args: %s' % x
print args
if kw != {}:
for eachKey in kw:
print '%s:%s' % (eachKey, kw[eachKey])
t = tuple(range(3))
d = dict(a = 1, b = 2)
f('wm', 'female', 10, x = 1,*t, **d)
运行结果:
name: wm
gender: female
(10, 0, 1, 2)
a:1
x:1
b:2
10在t之前出现,同时,t = (0, 1, 2),最后的结果是(10, 0, 1, 2)顺序与元素出现顺序一致,因为元组不可变。
因为dict无序,所以元素位置不定。