昨天又双叒叕没更新,真懒!!!!!!!!!!!
lambda表达式和匿名函数
lambda表达式可以用来声明匿名函数,lambda函数是一种简单的、在同一行中定义函数的方法,lambda函数实际生成了一个函数对象。
lambda表达式只允许不含一个表达式,不能包含复杂的语句,该表达式的计算结果就是函数的返回值。
lambda表达式基本语法:
F=lambda arg1 arg2 arg3 ...:<表达式>
###基础型
f=lambda a,b,c :a+b+c
print(f)
print(f(1,2,3))
#提高型
f2=[lambda a:a**2,lambda b:b*2,lambda c :c+=9]
print(f2[0](7),f2[1](4),f2[2](1))###将lambda函数运用于列表中时,先索引一个lambda函数然后给他赋值
#结果:
<function <lambda> at 0x000001B4DEFCA320>
6
49 8 10
eval()函数
功能:将字符串str当成有效表达式来求值并返回计算结果
语法:eval(source,globals,laccals)
参数:
source:一个python表达式函数或函数compile()返回的代码对象
globals:可选,必须是dictionary
locals:可选,任意映射对象
s=print('abcdefg')
eval(' s')
a=10
b=20
c=eval('a+b')
print(c)
dict1=dict(a=100,b=200)
d=eval('a+b',dict1)
print(d)
#结果:
abcdefg
30
300
nonocal关键字
nonlocal 用来声明外层局部变量
global 用来声明内层全局变量
Python 在查找’名称‘,是按照LEGB规则依次查找的:Local-->Enclosed-->Global-->Built in
LEGB规则:
Local 指的是函数或类方法内部
Enclosed 指的是嵌套函数
Global 指的是模块中的全局变量
Built in 指的是Python为自己保留的特殊名称