位置参数,默认参数,非关键字可变长参数,关键字可变长参数

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无序,所以元素位置不定。

原文地址:https://www.cnblogs.com/iNeoWong/p/4816897.html