19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集

关键字参数
参数默认值
参数收集
逆向参数收集

关键字参数

Python函数的参数名不是无意义的,Python允许调用函数时通过名字来传入参数值

调用函数时,支持两种方式为参数指定值:
方式1:位置参数:必须按顺序为每个参数指定参数值
方式2:关键字参数(命名参数):按参数名为参数指定参数值

位置参数:

在这里插入图片描述

关键字参数

相比于位置参数,关键字参数的优势:不用按顺序,可读性更高
在这里插入图片描述

位置参数和关键字参数的混合使用

在这里插入图片描述

关键字参数注意点

如果希望调用函数时混合使用关键字参数和位置参数,关键字参数必须位于位置参数之后。
在这里插入图片描述

参数默认值

程序需要在定义函数时为一个或多个形参指定默认值——这样调用函数时就可以省略为该形参传入参数值

为形参指定默认值的语法格式如下:形参名 = 默认值

带默认值的参数必须处于没有默认值的参数的后面

使用参数默认值

对于有默认值的参数,调用函数时可省略为该参数指定参数值

如果要省略为前面的参数指定参数值,则需要用关键字参数为后面的参数指定参数值

在这里插入图片描述

普通参数收集(*xxx)

在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入

参数收集的本质就是一个元组:Python会将传给带*参数的多个值收集成一个元组。

Python允许个数可变的形参可以处于形参列表的任意位置(不要求是形参列表的最后一个参数),但最多只能带一个支持“普通”参数收集的形参。

如果支持“普通”参数收集的形参位于前面,后面参数则需要使用关键字参数传值

在这里插入图片描述

注意点

如图,如果把参数收集放在其他参数前面,python会把传过来的值都收集成一个元组给 num 参数。
导致 books 这个参数没有值而报错
在这里插入图片描述

如果要支持“普通”参数收集的形参位于前面,后面参数则需要使用关键字参数传值
在这里插入图片描述

一个函数只能有一个普通参数收集的形参
在这里插入图片描述

关键字参数收集(**xxx)

在参数前面添加2个星号,该参数支持关键字参数收集,收集的参数被当成dict处理

一个函数可同时支持普通参数收集和关键字参数收集

在这里插入图片描述

在这里插入图片描述

逆向参数收集

逆向参数收集:在列表、元组前添加一个 *,在字典之前添加两个 **

即使是支持收集的参数,如果程序需要将一个元组传给该参数,同样需要使用逆向收集(否则整个元组被当成一个值)

注意点:

调用函数时,Python 不会对元组自动解包,默认情况下,元组是一个整体
在这里插入图片描述
*对元组进行解包(逆向参数收集)

在这里插入图片描述

列表作为参数
在这里插入图片描述

参数值多就不行了
在这里插入图片描述

dict(字典)的逆向参数收集

dict前添加两个**,这样字典就可逆向参数收集

字典将会以关键字参数的形式传入。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L_J_H_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值