首页 > python基础教程> 详细内容
(43)python少儿编程之函数(四)
日期:2020-02-26 
  • 参数规则
    • 参数列表参数一般顺序是,普通参数、缺省参数、可变位置参数、keyword-only参数、可变关键字参数

(43)python少儿编程之函数(四)
  • 如图,x,z是普通参数,z=3是缺省参数,*args是可变位置参数,m=4,n是keyword-only参数,**kewargs可变关键字参数
  • 一般最复杂的情况是这些参数都存在,但是我们写函数的时候不是为了考别人,而是为了让问题变得简单,易读易懂

函数解构

  • 为什么需要函数解构
(43)python少儿编程之函数(四)
  • 当我们遇到如图的问题,只能取列表的每个元素然后作为形参
  • 那么为什么更好的办法呢?

(43)python少儿编程之函数(四)
  • 如图 我们就用到了结构 在列表的前面加一个* 就可以把列表结构成元素作为实参传入函数
  • 我们看下定义
  • 参数结构
    • 给函数提供实参的时候,可以在集合类型前使用*或者**,把集合的结构解开,提取出所有的元素作为函数的实参
    • 非字典型集合用*结构成位置参数
    • 字典型集合用**解构成关键字参数
    • 提取出的元素数量要和参数的要求匹配,类型也要匹配
  • 刚才看了列表的 我们再看下字典如何结构

(43)python少儿编程之函数(四)
  • 如图,解构字典的方式,有一个重点的问题就是,字典的key必须要用形参名一样,这个例子都要 用x,y,否则就会报错。
(43)python少儿编程之函数(四)
  • 当我把x改成a,你就会发现报错,他找不到a的关键字参数
  • 那如果我们只想取值呢,也可以换个思路,把取出字典的values当成列表传进去即可

(43)python少儿编程之函数(四)
  • 这个时候values就是1,2列表集合,用一个*解构成位置参数即可,当然也可以用keys解构去传,这个你们可以自己试下!
  • 参数解构,大大的提高了函数的灵活性,多个不同的集合,可以一次性都传入函数,以后会经常用到!