[PYTHON]python中的关键字参数

在部分函数中,我们会看到传入的参数带有关键字,这类参数称为关键字参数(keyword arguments)。
比如:
headers={….}
r=requests.get(URL,headers=headers)
这种传入参数的方法看起来更简洁清晰。
在python函数定义的时候,可以使用*在强制使用关键字参数。如下示例:
def addd(a, *,b,c):
    print(a,b,c)
#addd(1,2,3)#error
#addd(1,b=2,3)#error
addd(1,b=2,c=3)

def adda(*,a,b,c):
    print(a,b,c)
#adda(a=1,2,3)#error
#adda(a=1,2,3)#error
adda(a=1,b=23,c=2)
需要注意的是,所有在*之后的参数都会被视为关键字参数。

如果函数参数中有可变参数,则可变参数(变量名前紧跟*)之后的所有参数都被视为关键字参数。可变参数本身不是关键字参数。如下*arg:

def addb(a, *arg,b,c):
    print(a, arg,b,c)
#addb(10,(1,2),20,30)#error
addb(10,(1,2),b=20,c=30)
addb(10,2,b=20,c=30)