19 Python - 函数与Lambda表达式

时间:2022-07-02 18:33:14

函数与Lambda表达式

01 函数传参(回顾)

  不可变传复制,可变传指针地址

  一类不可以改变:整型、浮点型、字符串、Tuple。传递不可变类型,传递副本给函数,函数内操作不影响原始值

  一类可以改变,列表 字典表。传递可变类型,传递地址引用,函数内操作可能影响原始值。如果不想改变可以传递副本。

 

02参数匹配

  ①   参数匹配:默认位置匹配
  ②   参数匹配:顺序打乱,按名称匹配
  ③   参数匹配:有默认值可省略传值

19 Python - 函数与Lambda表达式

 

 

  ④   参数匹配:传多个那就传Tuple

  如果多个值逐个传递,形参需要用*来接收

19 Python - 函数与Lambda表达式

 

 

  如果传递整个list,形参和实参都需要*

19 Python - 函数与Lambda表达式

 

 

 

⑤   参数匹配:传递键值对就传dict,用**

  如果一个一个传递键值对,形参用**

  如果整体传递键值对,形参和实参都用**

     19 Python - 函数与Lambda表达式

 

 

 

03Lambda表达式

①   什么是Lambda表达式

  简单理解:一个匿名函数,省略了定义函数时def 名称 括号 冒号 return

   19 Python - 函数与Lambda表达式

 

下面是一个例子:

 19 Python - 函数与Lambda表达式19 Python - 函数与Lambda表达式

 

 

多个参数例子

 19 Python - 函数与Lambda表达式19 Python - 函数与Lambda表达式

 

 

 

  注意:Lambda表达式需要用一个变量来接收如例子中的f或f1 或者另一种方法就是用括号即(Lambda)(实参)

  下面采用的是括号括起整体来加个括号,然后用(name)传参,个人理解就是把lambda以函数传参形式执行

   19 Python - 函数与Lambda表达式

  19 Python - 函数与Lambda表达式

 

 

②   为什么用Lambda表达式

  简洁  便于函数嵌套

 

③   例子:如果某些内容仅用一次或临时使用,定义成函数有些浪费,就可以考虑Lambda表达式

  代码中两个用函数,一个用lambda表达式

   19 Python - 函数与Lambda表达式

 

  解释action就是引用了各个函数,

  注意引用函数时函数名称后不要加(),否则函数要执行了。这样好处就是便于函数间的切换。

     19 Python - 函数与Lambda表达式

 

代码三个用表达式

     19 Python - 函数与Lambda表达式