函数与Lambda表达式
01 函数传参(回顾)
不可变传复制,可变传指针地址
一类不可以改变:整型、浮点型、字符串、Tuple。传递不可变类型,传递副本给函数,函数内操作不影响原始值
一类可以改变,列表 字典表。传递可变类型,传递地址引用,函数内操作可能影响原始值。如果不想改变可以传递副本。
02参数匹配
① 参数匹配:默认位置匹配
② 参数匹配:顺序打乱,按名称匹配
③ 参数匹配:有默认值可省略传值
④ 参数匹配:传多个那就传Tuple
如果多个值逐个传递,形参需要用*来接收
如果传递整个list,形参和实参都需要*
⑤ 参数匹配:传递键值对就传dict,用**
如果一个一个传递键值对,形参用**
如果整体传递键值对,形参和实参都用**
03Lambda表达式
① 什么是Lambda表达式
简单理解:一个匿名函数,省略了定义函数时def 名称 括号 冒号 return
下面是一个例子:
多个参数例子
注意:Lambda表达式需要用一个变量来接收如例子中的f或f1 或者另一种方法就是用括号即(Lambda)(实参)
下面采用的是括号括起整体来加个括号,然后用(name)传参,个人理解就是把lambda以函数传参形式执行
② 为什么用Lambda表达式
简洁 便于函数嵌套
③ 例子:如果某些内容仅用一次或临时使用,定义成函数有些浪费,就可以考虑Lambda表达式
代码中两个用函数,一个用lambda表达式
解释action就是引用了各个函数,
注意引用函数时函数名称后不要加(),否则函数要执行了。这样好处就是便于函数间的切换。
代码三个用表达式