python函数的参数之默认参数、可变参数、组合参数
目录
默认参数
指函数调用前代码块中就已经存在的参数。
调用函数时,如果没有传递参数,就会被程序使用默认参数。
例如:
运行结果:
以上例子,没有对age赋值,在输出结果中使用了函数定义时的默认值。若对age赋值,重新调用上面的函数:
运行结果:
执行结果使用的是我们传入的参数。
所以,
当对默认参数传值时,函数执行时调用的是我们传入的值。
特点:
(1)无论有多少默认参数,默认参数都只能在必须参数之后。
(2)无论有多少默认参数,若不传入默认参数值,则使用默认值。
(3)若要更改某一个默认参数值,又不想传入其他默认参数,且该默认参数的位置不是第一个,则可以通过参数名更改想要更改的默认参数值。
(4)若有一个默认参数通过传入参数名更改参数值,则其他想要更改的默认参数都需要传入参数名更改参数值,否则报错。
(5)更改默认参数值时,传入默认参数的顺序可以不和定义的函数中的默认参数的顺序一致。
可变参数
使所定义的函数参数数量可变。这些参数叫作可变参数。
例如:
运行结果:
当我们声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有位置参数都将被收集并汇集成一个称为“param”的元组(Tuple)。
当我们声明一个诸如 **param 的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为 param 的字典(dict)。
组合参数
Python中定义函数可以用必须参数、关键字参数、默认参数和可变关键字参数,这4种参数可以组合使用。注意定义参数的顺序必须是必须参数、默认参数、可变参数和关键字参数。
例如:
运行结果:
使用组合参数,在调用函数时,Python解释器会自动按照参数位置和参数名把对应的参数传进去。
用tuple和dict调用上述函数
例如:
运行结果:
所以,任意函数都可以通过类似func(*args,**xc)的形式调用,无论参数是如何定义的。