arg &*args & **kwargs
arg的使用方法:arg就是一个普通的参数
举个栗子:
def foo(arg):
print arg
print type(arg)
print type(arg)
foo(1)
>>>1
>>><type'int'>
>>><type'int'>
*args的使用方法:*args是用来把参数打包成元祖(tuple)然后给函数体使用。
举个栗子1:
def foo(*args):
print args
print type(args)
print type(args)
foo(1)
>>>(1,)
>>> <type 'tuple'>
>>> <type 'tuple'>
举个栗子2:
def foo(x , y , *args):
print x , y , args
foo(1,2,3,4,5)
>>>
1 2 (3, 4, 5)
**kwargs的使用方法:打包关键字参数成字典(dict)然后给函数体调用。
举个栗子1:
def foo(**kwargs):
print kwargs
print type(kwargs)
print type(kwargs)
foo(a=2)
>>>{'a': 2}
>>><type 'dict'>
>>><type 'dict'>
举个栗子2:
def foo(**kwargs):
print kwargs
foo(a =1 , b =2 , c =3)
>>>
{'a': 1, 'c': 3, 'b': 2}
注意:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg , *args , **kwargs)这个顺序,否则程序会报错。
举个栗子:
def foo(arg,*args,**kwargs):
print arg,args,kwargs
foo(1,2,3,a=4,b=5)
>>>
1 (2, 3) {'a': 4 , 'b': 5}