python中什么是关键字参数_python的关键字参数和怎样为参数设置默认值

#编程语言#

第八十八节:关键字参数和为参数设置默认值

因为各方面的原因,有好几周时间没有学习和更新了,非常抱歉,眼看着离自己的目标又远了一大截,为此我决定再次投入,奋起直追,希望各位朋友可以继续支持我,谢谢!

关于Python函数中的位置参数接着前面的内容,今天学习的有两项:关键字参数和为参数设置默认值。

首先来看关键字参数。

关键字参数是指使用形式参数的名字来确定输入的参数值。

这句话可以这样理解:在执行函数的时候,使用创建函数时使用的形式参数名字来直接指定参数的值。

继续使用身高体重BMI指数实例来看一下关键字参数的使用方法和效果,先改一下代码,在执行函数时使用关键字参数,详见下图:

d8f9d72a6059252da2eeaeadb80fca3d5ab5b93d.jpeg?token=e64e1a56889584fa85ceb062618273a4指定关键字参数值

然后看一下执行结果,详见下图:

0823dd54564e9258f4789c1a1b16185ecdbf4e14.jpeg?token=13490064cd6e4b012d3112c12ddefbeb指定关键字执行结果

从执行结果中可以发现,使用关键字参数之后,无论参数值的位置如何改变,最终的执行结果还是正确的,不会受到定义函数时参数顺序的影响。这就是关键字参数的最大作用。了解Python函数中的形式参数和实际参数

接下来看看如何为参数设置默认值。

前面已经学过了部分函数和方法在不指定参数值的情况下,执行时会调用默认参数值,四个关于序列应用的模拟实例那么在自定义函数中,也可以自主设定参数的默认值。具体格式参照下图:

c8ea15ce36d3d5390fe07682b6132056342ab029.jpeg?token=b61f8264c44f0b7d45fefecd66be5ae3为参数设置默认值格式

如上面的格式所示,设定参数默认值的时候,只需要在创建函数的时候,将形式参数等于一个默认值就可以了,这样在执行的时候,不指定这个形式参数的值的情况下,就会执行默认值,并且设定默认值的形式参数位置必须排在所有参数的最末位。

还是使用BMI指数的例子,将其中的的一个参数name设定默认值等于“路人甲”,下图就是修改后的代码,只有一点点不同:

9d82d158ccbf6c81bacc06ff34aa783332fa404c.jpeg?token=07a2c9a2983e4f64b17221fece65051f为参数设置默认值实例代码

执行的结果,就是在执行函数的时候不指定name参数的情况下,结果都会默认为“路人甲”,详见下图:

342ac65c10385343969c11021a877978cb8088d9.jpeg?token=02e3577341ac0e7cafa5ef0131265d4c为参数设置默认值实例执行结果

那么既不在创建函数时设定参数默认值,又不在执行函数时指定参数值,会发生什么情况呢?请看下图:

91ef76c6a7efce1bcc3a1a0223c53ad8b58f6504.jpeg?token=19de4d5b3874b1d2b0789033087099f3不设置默认值又不指定参数值就会出现异

以上指定参数默认值都是在默认值为不可变对象的情况下,那么默认值是可变对象的话会出现什么情况呢?使用一个实例来说明一下:

5fdf8db1cb134954c2e55e63dfda5b5ed0094a5d.jpeg?token=a8c83ef2bd6f563c9df8915487c60f26可变对象为默认值实例

上图的参数默认值是一个可变对象--一个空列表“[]”,在多次执行函数时,每次的结果都是不一样的,逐渐的在空列表中加入了元素,这就代表参数的默认值在逐渐的变化。

这样显然是不对的,既然是默认值,就应该是唯一指定的不变的值,变来变去还叫什么默认值啊。

所以为了避免这种情况的发生,可以将参数的默认值设定为一个None值,同时在函数主体中判断当参数等于None值,参数默认值等于一个空列表,这个时候,函数在执行时不指定参数并多次执行,参数的默认值也不会改变。下图就是这样修改后执行的实例:

18d8bc3eb13533fab0b78bb82f47341940345bb9.jpeg?token=0ea57e2574f89dc5cbd6e971deec3114可变对象设置默认值限制变化实例

以上实例的内容阐述了一个定理:在创建函数的时候,为形式参数指定默认值必须指向一个不可变的对象!

最后介绍一下在Python中如何查询参数默认值的方法。

在Python中,可以使用defaults方法直接输出参数的默认值,它的具体格式是这样的:输出函数print+小括号“(”+函数名+一个点“.”+双下划线“_ _”+方法名“defaults”+双下划线“_ _”+小括号“)”。

使用这个方法,随手查询一下上面的None值实例中设定的参数默认值,得到的结果就是用元组的形式输出了参数的默认值。如下图所示:

63d0f703918fa0ecf6cc8e41af0390e83c6ddb8b.jpeg?token=cb23cd80c5b74ac8cac5715dd32b70d8查询参数默认值方法实例

感谢您的关注、分享、收藏和点赞!

明天奉上的将是“可变参数”,敬请拭目以待。

为自己加油,我是“学海无涯自学不惜!”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值