#coding=utf-8
#参数列表中的arg代表一个参数,这个参数可以是整数,浮点数或者是字符串
#参数列表中的*args代表一个元组参数,适用于在定义函数的时候,并不确定参数究竟需要几个的场景
def func1(arg,*args):
    print "arg:",arg
    print "args:",args
    for value in args:
        print "other args:",value

#参数列表中的**args代表一个字典参数,字典中都有确定的键值对
def func2(**args):
    print "args:",args
    for key in args.keys():
        print "key:%s value:%s"%(key,args.get(key))
def func3(arg,*tuple,**dict):
    print "arg=%s"%(arg)
    print "tuple:",tuple
    print "dict:",dict
    for value in tuple:
        print "value is %s"%(value)
    for key in dict.keys():
        print "key:%s value:%s"%(key,dict.get(key))
if __name__=="__main__":
    print "----------func1----------"
    #针对func1(arg,*args),第一个实参会传给arg形参,后面的实参'a',True,False,'Hello'会以元组的形式传给*args形参
    func1(1,'a',True,False,'Hello')
    print "----------func1----------"
    print "----------func2----------"
    #针对func2(**args),会把a='Apple',b='Banana',c='Cheery'转化为一个字典传给**args形参
    func2(a='Apple',b='Banana',c='Cheery')
    print "----------func2----------"
    print "----------func3----------"
    #func3(arg,*tuple,**dict)第一个实参1会传给arg形参,2,3,4,5会以元组的形式传给*tuple形参,a=1,b=2,c=3会以字典的形式传给形参**dict
    func3(1,2,3,4,5,a=1,b=2,c=3)
    print "----------func3----------"

 

执行结果

----------func1----------
arg: 1
args: ('a', True, False, 'Hello')
other args: a
other args: True
other args: False
other args: Hello
----------func1----------
----------func2----------
args: {'a': 'Apple', 'c': 'Cheery', 'b': 'Banana'}
key:a value:Apple
key:c value:Cheery
key:b value:Banana
----------func2----------
----------func3----------
arg=1
tuple: (2, 3, 4, 5)
dict: {'a': 1, 'c': 3, 'b': 2}
value is 2
value is 3
value is 4
value is 5
key:a value:1
key:c value:3
key:b value:2
----------func3----------