持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
0 环境
- 编辑器:idea或vscode
- 系统版本:windows10
- python版本:3.9.6
1 默认参数值
有了位置参数和关键字参数,但有一种情况没有解决,就是我不传某个参数时,希望它自己能默认一个值,第一、能避免一些报错,第二、无需每次调用函数考虑可忽略的参数的值的传入,一切随心,第三、对于一些固定的值,我只需要开始设定好默认的参数值,就可以避免每次调用函数,传参值的修改,做到了一处修改到位,不需要改动调用函数里的值,相当于从源头抓关键点,这是默认参数值的好处所在。
只需要将参数b加上个默认值,如下,我就可以做到传入一个或两个参数的值,没有b的值,传入默认值,有则用传入的值。
这里和位置参数有关系了,学过es6的人看到这也会很容易理清楚,如下图片:我设置(a=1,b),这里有个问题,先这样理,我有个默认值的参数,但是我传入一个值,可以替换或者覆盖它原来的值,也就说我传入一个参数,还是被a拿走了,但是b没有默认值,也没有得到属于它的值,然后就报错了。(a,b=1)这样就没问题,按照位置参数的规则赋值,没有问题。也就说带默认值的参数,在不带默认值的后面。它能应用在哪里呢,比如常用数据库的配置,默认主机名、默认端口、默认的用户名和密码。是不是会省事很多。
2 总结
参数可以有它自己的默认值,当参数有默认值的时候,当调用时,不传参时,会调用参数的默认值。它也是有限制的,参数默认值放后面,连起来看,这里还和之前学的位置参数有关系,还有不要和关键字参数搞混肴了,不管位置参数或关键字参数目标都是为了,把值传给相对应的参数,争取传对,出现了两种混用的方式,它针对调用方,而默认参数值针对函数的定义的参数,给定默认值,相当于是源头。