匿名函数的使用介绍 | 学习笔记

简介: 快速学习 匿名函数的使用介绍

开发者学堂课程【Python入门 2020年版匿名函数的使用介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10340


匿名函数的使用介绍


内容介绍

一、匿名函数

二、调用方法


一、匿名函数

lambda 关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

1.f add(a, b):

return a + b

x = add(4, 5) #函数名(实参)作用是调用函数,获取到函数的执行结果,并赋值给变量 x

print(x)

运行结果:9

2.fn = add这个代码大家能看懂嘛?

print(fn)

如果打印 fn 是什么东西,函数本质上就是一块准备好的代码,

print("Ox%X" % id(add))

运行结果:0x1CE36C81D38  9

函数本质上就是一块准备好的代码,这个代码都位于内存里面,在内存里面有一个块,0x1CE36C81D38就是他的房间号,在这个房间里存储这代码,现有一个 add 变量指向该代码,之前都是认为指向一个字符串,一个元组和列表等。

但是没有指向过函数,其实也是同样的,函数就是准备好的一段代码,一块代码。Fn=add 就是一个赋值,他也指向这同一堆代码,这相当于起了一个别名。

image.png

print("Ox%X" % id(fn))

运行结果:0x1CE36C81D38  地址相同,

F(n)=add,也可以写成 fn(3,7)相当于给函数写了一个别名,fn(3,7)也是可以的,相当于给 fn 起了一个别名。

#除了使用 def 关键字定义-一个函数以外,我们还能使用 lambda 表达式定义一个函数是比较简单的,只定义一个语句。

匿名函数 lambda a,b:a+b  这个函数跟 def add(a,b)意义是相同的,同样需要两个参数,a b,计算的结果是 a+b,然后返回回来。

匿名函数更多时候,用来表达一个简单的函数,函数调用的次数很少,基本上就是调用一次。


二、调用方法:

1.给它定义一个名字(很少这样使用)

Mul =lambda a,b:*b

Printmul(4,5)

Mul 就是一个函数

运行结果:20   跟上面 add 相同,起一个别名,fn add 的别名,mol 也是一个别名,起了别名就可以调用它了.

2.把这个函数当作参数传给另一个函数使用(使用场景较多)

自定义一个匿名函数的场景

Def cala(a,b):

Pass

有两个参数 a,b 能够做运算,可以加减乘除,如何计算,return a+b 就写死了,只能做加法,假如想做其他运算就不可以。

Print(calc(1,2)),只需要告诉做什么运算就可以计算,

调用时:

Def calc(a,b)

Def add(x,y)

Return x+y

X1=calc(1,2)

1调用给 a,2调用给 b,再调用给 xy ,之后结果返回到 a b,z 再返回,这个时候 x 就是1+2的结果了

image.png

Def calc(a,b)

C=add(a,b)

Return c

Def add(x,y)

Return x+y

X1=calc(1,2)

X2=cal(10,5)

Def minus(x,y)

Retutn x-y

不能调 add,要调用,minus,要求运算不能写死,加法减法分开,要求12是加法,105是减法应该如何做,c = minus(a b)这个运算不能写死,在函数里面不能写死的地方要写什么,固定的地方不用变,不固定的地方加参数。随便加一个参数 fn

def calc(a, b fn) :

c = minus(a b)

return c

def add(x, y):

return x +y

def minus(x y):

return x – y

x1 = calc(12,add) #a=1,b=2,fn=add

print(x1)

x2 = calc(105minus) #a=10,b=5,fn=minus

print(x2)

这个地方是有点难的,是高阶函数,加的参数 add 是函数类型的不能加括号。

image.png

C=fn,fn=add 这个函数,要调用这个函数,将1和·2传过来,达到这个函数=3,最后再返回,如上图所示。

image.png

一进来就调用 fn=minus

不能写(add),写的是函数,这个很高级,在开发中经常使用,叫做回调函数,给你一个函数,在合适的时间回调给我,将一个函数作为另一个函数的参数,add minus 都非常简单,在写时就不需要这么写。

x3 = calc(57lambda x y: x + y)

x,y 是形参,形参任意

x4 = calc(19, 3, 1ambda x, y: x- y)

x5=calc(2,7,lambdax,y:x*y)

x6 = calc(12 3lambda xy:x / y)

print(x3,x4,x5,x6

运行结果:1216144.0

Lambda 作为函数就是将一个 lamda 作为另一个函数的参数。

相关文章
|
4月前
|
存储 Go C++
lambda表达式与匿名函数
lambda表达式与匿名函数
28 0
|
JavaScript 前端开发 Java
函数式编程入门:理解纯函数、高阶函数与柯里化
函数式编程入门:理解纯函数、高阶函数与柯里化
213 0
|
Java Kotlin
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
166 0
|
编译器 C++
C++的匿名函数(lambda表达式)
C++的匿名函数(lambda表达式)
402 1
C++的匿名函数(lambda表达式)
|
PHP 开发者
简单匿名函数|学习笔记
快速学习简单匿名函数
简单匿名函数|学习笔记
|
PHP 开发者
匿名函数闭包|学习笔记
快速学习匿名函数闭包
匿名函数闭包|学习笔记
|
分布式计算 开发者 Python
高阶函数| 学习笔记
快速学习高阶函数
|
C#
C#匿名函数
C#匿名函数
102 0
|
Go 开发者
匿名函数 | 学习笔记
简介:快速学习匿名函数
104 0
|
分布式计算 Scala 开发者
高阶函数的介绍和使用 | 学习笔记
快速学习高阶函数的介绍和使用