如下,当我们定义了两个形参,那么我们传入实参的时候也只能传入两个,不能多也不能少:
#!/usr/bin/env python def fun(x, y): print(x+y) fun(2, 3)
如果我们要传多个参数可以用 *args 来处理,*args 用于接收冗余参数(冗余也就是多余的意思):
def fun(x, y, *args): print x print y print args fun(1, 2, 3, 4, 5)
[root@localhost ~]$ python 1.py # 以元组的形式返回冗余的参数 1 2 (3, 4, 5)
**kwargs 也可以用于接收冗余参数,但传参时必须以 key=value 的形式传入,且返回的是一个字典:
#!/usr/bin/env python def fun(x, y, *args, **kwargs): print x print y print args print kwargs fun(1, 2, 3, 4, 5, a=6, b=7)
[root@localhost ~]$ python 1.py 1 2 (3, 4, 5) {'a': 6, 'b': 7}