*args和**kwargs
*args 和 **kwargs
*args和**kwargs主要⽤于函数定义。你可以将不定数量的参数传递给⼀个函数。这⾥的不定的意思是:预先并不知道,函数使⽤者会传递多少个参数给你,所以在这个场景下使⽤这两个关键字。
*args用法
*args是⽤来发送⼀个⾮键值对的可变数量的参数列表(元组)给⼀个函 数.
def test_var_args(f_arg,*argv):
print("first normal arg:", f_arg)
for arg in argv:
print("another arg through *argv:",arg)
test_var_args('yasoob','python','eggs','test')
first normal arg: yasoob
another arg through *argv: python
another arg through *argv: eggs
another arg through *argv: test
**kwargs用法
kwargs允许你将不定长度的键值对,作为参数传递给⼀个函数。如果你想要在⼀个函 数⾥处理带名字的参数,你应该使⽤**kwargs。
def greet_me(**kwargs):
for key,value in kwargs.items():
print("{0}=={1}".format(key,value))
greet_me(name="yasoob")
name==yasoob
三种参数情况
如果你想在函数⾥同时使⽤所有这三种参数, 顺序是这样的:
some_func(fargs,*args,**kwargs)