1.位置参数
- 先定义一个含三个位置参数的函数”fun”.
def fun(a,b,c):
print(a,b,c)
执行结果
fun(1,2,3)
1 2 3
a,b,c三个为位置参数,何为位置参数,就是他们的位置是严格对照的,1就是a,2就是b,3就是c,顺序不能乱,不然就传给另一个形参了。
- 位置参数也可以列表的形式的传入,然后拆开list放到每个位置上去
- 执行结果
l=[1,2,3]
fun(*l)
1 2 3
2.关键字参数
- 在刚刚讲过位置参数的对顺序很严格,如果我们不想按照顺序,我们还可以定义关键字,指定实参所要给的形参是哪个
仍然使用之前的fun函数,但是参数换种形式:- 执行结果
fun(b=2,c=3,a=1)
1 2 3
3.可变参数
- 有些时候我们也不知道参数具体有多少个,这个时候我们可以把参数定义成可变参数来接受任意多的参数
def fun(*args):
print(args)
fun(1,2,3)
(1, 2, 3)
在这里args是元组
当然,可变参数也可以与位置参数联用
def fun(a,*args):
print(a,args)
fun(1,2,3)
1 (2, 3)
或者
def fun(a,*args):
print(a,args)
l=[2,3]
fun(1,*l)
4.可变关键字参数
- 定义一个函数
def fun(a,**kwargs):
print(a,kwargs)
fun(1,b=2,c=3)
1 {'c': 3, 'b': 2}
可以看出关键字参数kwargs是以字典形式返回的。
当然也可以像之前可变参数那样,只不过传进的是字典,而且一颗星变为了两颗星。
def fun(a,**kwargs):
print(a,kwargs)
d={"b":2,"c":3}
fun(1,**d)
1 {'b': 2, 'c': 3}
args和kwargs这两个只是名字,不一定非要写成这样。
另外,args和*kwargs在各种源码会经常见到,非常普遍。