复习一下函数参数。
首先,要知道函数的参数有哪几种类型。
- 默认参数
- 关键字参数
- 位置参数
- 包裹参数(*, **)
常见的就这么4种,它们调用时分别是这样的:
- 默认参数
def func(name='nzh', age=25): # 这是定义函数时的样子
调用直接func(),参数默认name就是‘nzh’,age是25。
说白了,就是在定义函数时给参数赋默认值。 - 关键字参数
调用时:func(name='nzh', age=25)
就是在传值的时候,在函数内赋值。 - 位置参数
定义:def func(nage, age): pass
调用:func('nzh', 25) - 包裹参数
一开始是费解,因为我只知道代表含有多个参数的元组(并不需要多个,但是要个定义时的参数列表相对应)。代表字典。
其实知道这些就差不多了。看一下用法就明白了。
比如定义了一个函数:
def hello(name, age):
print("name is " + name + ", " + "age is " + str(age))
在使用函数时,我们可以把参数打包,什么意思呢?就是传入一个元组或者字典。
比如我想传入的是一个元组,那就先定义一个元组,把参数放到元组里。
info = ('nzh', 25)
然后调用函数,传参数。
hello(info) # 因为你传的是元祖,所以用*
还有最重要的一点,一一对应,定义函数时,参数列表只有name和age两个参数,你的元组也就只能有2个参数。
字典传参数?看完了元组,举一反三呗。
同样是hello函数,我在使用前为参数创建一个字典
info_dict = {"name": "nzh", "age": 25}
同样,调用,传参。
hello(**info_dict)
简单吧?但是字典的键一定要正确,比如name写成了name2,就会报错,如图: