生活
匿名函数 、匿名函数和普通函数的区别
2023-04-12 00:31  浏览:51

匿名函数、函数作为变量

"""

匿名函数: 本质函数函数,以另一种简单的方式来声明

匿名函数的声明:

lombda 参数列表:返回值 ---结果是一函数变量

lambda:声明匿名函数的关键字

"""

练习:写一个函数计算两个数的和

输出:

练习;

输出:

"""

声明一个函数就是在声明一个变量

函数名可以作为变量来使用。可以打印,可以复制,可以作为函数的参数,可以作为函数的返回值。

"""

输出;

function func1 at 0x001FC660 class 'function'

函数名func1可以当成变量使用

输出;

将函数func1赋值给变量a,这个时候a就是一个函数

输出:

将函数func1作为列表的元素

输出:

输出;

3.将函数作为函数的返回值

写一个函数有多个参数,要求传入一个运算符号(+,—,*,,)

输出:

【JS】匿名函数

本节讲解 3 种原生JS的匿名函数。

匿名函数又叫立即执行函数。

因为是匿名的,所以不能被调用。

因为不能被调用,所以不立即执行的话就没意义了。

因为立即执行,所以在执行完之后就会被销毁。

***种(常用)

( function(){…} )()

第二种(常用)

( function(){…}() )

第三种(不常用)

~function(){…}()

前两种写法,返回值都是正常的。

第三种写法的返回值会比较奇怪,所以很少用。

***种写法

在控制台输出 1

第二种写法

在控制台输出 2

第三种写法

在控制台输出 -4

在控制台输出2

假设第三种写法的返回值是未知数 x。

则得到的返回值是:-(x + 1)

匿名函数

在Python中使用lambda创建匿名函数,所谓的匿名,是指不需要为这个函数指定一个名称.

匿名函数lambda只是一个表达式,函数体比def简单的多.

labmda arg1,arg2:expression

使用匿名函数创建常用的函数

无参数匿名函数

t = lambda : True

t() - True

等价于下面的def定义的函数

def func(): return True

func() - true

带参数匿名函数

lambda x : x 3 求x的三次方

lambda x,y=2:x y 参数允许拥有默认值

匿名函数的调用

直接赋值给一个变量,然后跟普通的函数一样调用它

c = lambda x,y,z: x * y * z

c(2,3,4)

24

lambda返回一个元组

a = lambda *z : z

a('abc','def')

('abc','def')

返回一个字典

d = lambda **dict:dict

d({"a":2})

{"a":2}

lambda直接后面传参

(lambda x,y:x+y)(100,200)#300

大量的实例

字符串联合,有默认值

x = (lambda x = 'boo',y='too',z='zoo':x+y+z)

x(abc)

和列表联合使用

L = [lambda x : x 2,lambda x:x 3,lambda x:x**4]

for f in L;

print(f(2)) # 4,8,16

和字典结合使用

key = 'B'

dic = {'A':lambda:2 2,'B':lambda:2 4,'C':lambda:2 *8}

dic key # 8

求最小值

lower = lambda:x,y:x if x y else y

lower(2,5) # 2

和map以及list联合使用

import sys

showall = lambda x : list(map(sys.stdout.write,x))

showall(['Jerryn','Sherryn','Alicen'])

lambda和map联合使用

out = lambda *x : sys.out.write(' '.join(map(str,x)))

out('This','is','a','book!n')

This is a book!

判断字符串是否以某个字母开头

print(lambda x : x.startswith('b')('Bob')) # false

lambda 和 map,filter联合使用

squares = map(lambda x : x**2,rang(10))

filters = filter(lambda x: x5 and x 50,squares)

lambda和sorted联合使用

death = [('James',32),('Fioman',22),('Yasanlun',35)]

list = sorted(death,key=lambda x : x[1])

求2-50之间的素数

nums = range(2,50 + 1)

for i in nums:

nums = filter(lambda x : x ==i or x %i,nums)

求两个列表元素的和

a = [1,2,3,4]

b = [5,6,7,8]

sum = map(lambda x,y:x+y,a,b)

求字符串中每个单词的长度

sentence = "Welcom To Beijing!"

words = sentence.split()

lengths = map(lambda x : len(x),words)

什么叫匿名函数

匿名函数 出现在 matlab 中。它是matlab中定义的一种函数形式。

基本内容

匿名函数不以文件形式驻留在文件夹上;他的生成方式最简捷,可在指令窗或任何函数体内通过指令直接生成。

匿名函数的作用:主要实现自己定义matlab中的函数,从而扩大函数的使用功能

和内联函数(inline)相比,匿名函数的优越性在于可以直接使用workspace中的变量,不必申明,非常适合嵌入到M文件中。

%例10-25 匿名函数举例。

%本例列举3个匿名函数的例子,分别有0个、1个和两个输入参数。

%首先介绍没有输入参数的匿名函数,只需用空格代替arglist即可。例如,编写求解当前时间的匿名函数如下所示。

t = @() datestr(now);

t() %函数的调用

ans =

14-Sep-2004 20:22:50

%值得注意的是,调用该函数时,括号不能省略,否则, MATLAB 7.1将对程序不予计算,如下所示。

t

t =

@() datestr(now)

%再介绍有一个输入参数的匿名函数,该函数用于求所输入参数的平方,编制并运行程序如下所示。

sqr = @(x) x.^2

sqr =

@(x) x.^2

sqr(12)

ans =

144

%最后介绍有两个输入参数的匿名函数,用户可以由此推导有多个参数的匿名函数,编制并运行程序如下所示。

sumAxBy = @(x, y) (14*x + 41*y)

sumAxBy =

@(x, y) (14*x + 41*y)

sumAxBy(3,7)

ans =

329

注意这些定义过程,其中@这个标志符是很重要的。

匿名函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于匿名函数和普通函数的区别、匿名函数的信息别忘了在本站进行查找喔。

发表评论
0评