- def f(*a),向def f(*a)是以tuple或者list的形式传输,在函数内部是以tuple的形式来进行处理,所以调用的时候,需要先组装出一个list或tuple,输入单个数字等按照tuple处理。定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个
*
号。在函数内部,参数numbers
接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数。 - 在 def f(**a)中,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
- 两种类型简化处理方法:*a的形式
>>> nums = [1, 2, 3] >>> calc(*nums) 14
- **a的形式
>>> kw = {'city': 'Beijing', 'job': 'Engineer'} >>> person('Jack', 24, **kw) name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
2019-09-09 21:17:54