#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----------