python 参数类型

1)必须的参数
2)可选的参数
3)过量的位置参数
4)过量的关键字参数

def complex_function(a, b=None, *c, **d):

1、*args和**kwargs只接受那些没有放进来的其他任何参数。
2、没有这个次序,当你调用一个带有位置参数的函数,python就不知道哪个值是已声明参数想要的,也不知道哪个被作为过量参数对待。
3、函数能接受许多必须的参数和可选的参数,那它只要定义一个过量的参数类型即可。
4、传递一个元组作为过量的位置参数时,是否要显式的传递关键字参数。因为python使用次序规则来扩展过量的参数,那位置参数要放在前面。

>>> def add(a, b, c):
… return a + b + c

>>> add(1, 2, 3)
6
>>> add(a=4, b=5, c=6)
15
>>> args = (2, 3)
>>> add(1, *args)
6
>>> kwargs={‘b’: 8, ‘c’: 9}
>>> add(a=7, **kwargs)
24
>>> add(a=7, *args)
Traceback (most recent call last):
File ““, line 1, in
TypeError: add() got multiple values for keyword argument ‘a’
>>> add(1, 2, a=7)
Traceback (most recent call last):
File ““, line 1, in
TypeError: add() got multiple values for keyword argument ‘a’

此条目发表在技术生涯分类目录,贴了标签。将固定链接加入收藏夹。