19、python函数的参数默认可变和关键字参数

在这里插入图片描述

在这里插入图片描述

函数参数有几种类型:

- 必选参数
也就是说你如果不传参,它会抛出错误;
- 默认参数 fun(a, b=3)
可以直接给它赋一个默认值,那这个时候调用这个函数的时候,你可以只传一个参数,默认参数不传,但是注意,默认参数后面不能有普通的必选参数,如果你中间是默认参数,你后面再有一个必选参数,那你这个默认参数的意义就不大了,因为你必须得传一个参数,所以它不会有,所以从语法设计上它就限制了你不能这样做。
** - 可变参数 fun(fmt, *args) **
可变参数只能是最后一个参数,因为它是可变参数,如果它在中间,你都不知道哪一个是要传给可变参数,其实对于Python来说,你传多个值,它只是把它们放到一个元组里面,传入进去。

**- 关键字参数 print(fmt, *args, **kw) **

我们可以指定间隔符号,可以指定换行符,都是通过关键字参数传递的,关键字参数必须是在最后一个,也就是说关键字参数还必须得在可变参数的后面,必须是最后一个参数。
可变参数的设定就是加一个*星号在这个可变参数上,关键字参数加两个*星号。
关键字参数其实传过去之后它就是一个Dictionary,就是一个字典,里面有个对应的key:value,通过key:value来取这样一个值。

  • 必选参数和默认参数
    在这里插入图片描述

  • 可变参数:
    在这里插入图片描述

  • 关键字参数
    如果你是通过关键字传递的参数,你是不能确保用户传递的,当然你可以限制他必须传递,但那样的话不就成了必选参数了么,所以你得处理好他不传关键字参数的情况:
    在这里插入图片描述
    报错的原因是,这两条if语句不在函数func4的作用于范围内了,所以需要讲这两条if语句缩进,和func4里面的print对齐,记得if语句里面的print语句也要相应进行缩进!
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhaopeng01zp/article/details/109277303
今日推荐