1:必选参数
2:默认参数
3:可变参数 *args
4:关键字参数 **kwargs
例子如下
def xx(a,b=3,c):
print(a,b,c)
xx(1,2) # 出错这里你想的是把a赋值为1 c赋值为2 实际上是a=1,b重新赋值为2
SyntaxError: non-default argument follows default argument
def xx(b=3,a):
print(a,b)
xx(2)#这里你想的是给a赋值为2,但是b在前面所以b重新赋值为2
SyntaxError: non-default argument follows default argument
为了解决这个迷惑问题python规定默认参数必须在必选参数后面
def xx(a,*b,c=3):
print(a)
print(b)
print(type(b))
print(c)
xx(4,5,6,7) #将5,6,7打包成元组传给参数b,b为元组
结果为:
x=[5,6,7,8]
def xx(a,b,c,d,e):
print(a,b,c,d,e)
xx(4,*x) #这里*x 把x中每个元素分给b,c,d, e
结果为4,5,6,7,8
key值必须为字符串
def xx(a,b=3,**c):
print(a,b,c)
xx(4,nb='33',sb='44')
运行结果
4 3 {'nb': '33', 'sb': '44'}
y={'b':44,'c':[1,2,3,4],'d':88}
def xx(a,b,c,d=3):
print(a,b,c,d)
xx(4,**y)
运行结果
4 44 [1, 2, 3, 4] 88
大家可以根据我这代码自我进行实验,摸清python语法规则 本文章发表个人观点,不对的地方欢迎指出。
喜欢的点波关注,点赞一下 么么哒么么