cccyyys 发表于 2021-6-18 09:29

【笔记】lambda表达式和匿名函数、eval()函数

lambda表达式和匿名函数
lambda表达式可以用来声明匿名函数。lambda函数是一种简单的、在同一行中定义函数的方法,实际是生成了一个函数对象。
lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值。
基本语法:lambda arg1,arg2,arg3...:<表达式>    arg1,arg2,arg3相当于形参,<表达式>相当于函数体。运算结果为表达式的运算结果。
#lambda表达式和匿名函数
f = lambda a,b,c:a+b+c
print(f(1,2,3))
g =
print(g(5),g(2),g(4))
eval()函数
功能:将字符串str当成有效的表达式来求值并返回计算结果。
语法:eval(source[,globals[,locals]])->value
source:一个Python表达式或者complie()返回的代码对象
globals:可选,必须是dictionary。
locals:可选,任意映射对象。
#eval()函数
s = 'print("abcde")'
eval(s)

a = 10
b = 20
eval('print(a+b)')

dict1 = dict(a=100,b=200) #用dict1中a,b计算
d = eval('a+b',dict1)
print(d)
最后一个eval()函数中的a,b使用的是字典dict1中的数据,这是使用语法中的source[,globals[,locals]]实现的,可以自主选择使用的数据源。

nappywu 发表于 2021-6-18 09:45

这个没什么难度吧?

mokson 发表于 2021-6-18 09:52

璐璐诺 发表于 2021-6-18 10:49

祝你前程似锦{:301_993:}

在线小学生 发表于 2021-6-18 15:17

d = eval('a+b',dict1)
这个有点意思啊。学习了。

sxxstc 发表于 2021-6-18 16:23

匿名函数,复习一下

cccyyys 发表于 2021-6-18 19:09

在线小学生 发表于 2021-6-18 15:17
d = eval('a+b',dict1)
这个有点意思啊。学习了。

哈哈,其实原理不是太明白,看视频是这么写的,这个dict1是相当于语法里面的globals还是locals?

wanshiz 发表于 2021-6-19 07:30

感谢楼主分享Python的内容。有些巧妙的写法没有见过就不知道。
页: [1]
查看完整版本: 【笔记】lambda表达式和匿名函数、eval()函数