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

目录

  • 关键字参数
    • 位置参数:
    • 关键字参数
      • 位置参数和关键字参数的混合使用
      • 关键字参数注意点
  • 参数默认值
    • 使用参数默认值
  • 普通参数收集(*xxx)
    • 注意点
  • 关键字参数收集(**xxx)
  • 逆向参数收集
    • 注意点:
  • dict(字典)的逆向参数收集

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

关键字参数

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

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

位置参数:

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第1张图片

关键字参数

相比于位置参数,关键字参数的优势:不用按顺序,可读性更高
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第2张图片

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

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第3张图片

关键字参数注意点

如果希望调用函数时混合使用关键字参数和位置参数,关键字参数必须位于位置参数之后。
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第4张图片

参数默认值

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

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

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

使用参数默认值

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

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

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第5张图片

普通参数收集(*xxx)

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

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

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

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

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第6张图片

注意点

如图,如果把参数收集放在其他参数前面,python会把传过来的值都收集成一个元组给 num 参数。
导致 books 这个参数没有值而报错
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第7张图片

如果要支持“普通”参数收集的形参位于前面,后面参数则需要使用关键字参数传值
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第8张图片

一个函数只能有一个普通参数收集的形参
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第9张图片

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

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

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

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第10张图片

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第11张图片

逆向参数收集

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

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

注意点:

调用函数时,Python 不会对元组自动解包,默认情况下,元组是一个整体
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第12张图片
*对元组进行解包(逆向参数收集)

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第13张图片

列表作为参数
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第14张图片

参数值多就不行了
19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第15张图片

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

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

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

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集_第16张图片

你可能感兴趣的:(Python,基础知识,python,开发语言)