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

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

开发者学堂课程【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 作为另一个函数的参数。

相关文章
|
JavaScript 前端开发 搜索推荐
CSR、SSR与同构渲染全方位解析
CSR、SSR与同构渲染全方位解析
367 0
|
存储 Oracle 关系型数据库
几种常见的数据同步方式
【6月更文挑战第18天】几种常见的数据同步方式
2294 4
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1092 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1768 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
700 152
|
12天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
663 13