1是位置参数,zy是关键字参数,位置参数必须在关键字参数左边:
def test(x,y,z):
'这里是函数注释'
print(x,y,z)
return None
test(1,z = 233,y = 44)
输出:
1 44 233
=可以设置默认参数:
def test(x,y,z=None):
'这里是函数注释'
print(x,y,z)
return None
test(1,y = 44)
输出:
1 44 None
参数组:*args **kwargs
*args作为形参代表可以输入任意个数的参数,并作为一个元祖处理:
def test(x,*args):
'这里是函数注释'
print(x,args)
return None
test(1,{'k1':2,'k2':89})
输出:
1 ({‘k1’: 2, ‘k2’: 89},)
*[]列表,字符串,元祖,字典等可迭代对象前加星号表示遍历一次
*{}字典前加星号表示把键遍历一次,
*{}.values表示把字典的值遍历一次
字典前加**表示把键值对遍历一次
可变参数必须在关键字参数左边:
def test(*args, **kwargs):
'这里是函数注释'
print(args)
print(kwargs)
return None
test(0,*'abc',k = 1,*{'k1':'v2','k2':'v2'}.values(),**{'k2':2})
输出:
(0, ‘a’, ‘b’, ‘c’, ‘v2’, ‘v2’)
{‘k’: 1, ‘k2’: 2}