函数的作用域,匿名函数,高阶函数
python中函数就是一个作用域(和js类似),局部变量放置在其作用域中。
局部变量中的变量归属其实是按照作用域来划分的。
定义完成后,作用域已经确定,以后调用时根据嵌套关系一层一层调用,作用域链向上查找。
#匿名函数
lambda 函数 没有函数名,需要设定一个函数名。
func = lambda x,y:x*y print(func(4,5))
匿名函数的三元运算
func = lambda x,y:x*y if x<y else x/y
map 函数
map(function,iterable,....) function函数,iterable 一个或多个序列
print(list(map(lambda x:x*x,[1,2,3,4,5])))
运用匿名函数将列表中的每一个值与自己相乘。(节省代码量,看起来比较简洁)
num = list(range(10)) print(list(map(lambda x:x*x,num)))
#高阶函数定义(变量可以指向函数,函数的参数可以接受变量,那么一个函数就可以接受另一个函数为参数,这种函数就被称为高阶函数)
变量可以指向函数(函数名赋值给一个变量)
def calc(x,y): return x + y a = calc print(a(2,3))
#函数的参数可以接受变量,如下
def calc(x): return x n = 3 calc(n)
#函数接收另一个函数为参数(运行的是calc)def calc(x,y): return x -y
def fun(x): return x f = fun(calc) print(f(5,6))
返回值里面有函数也叫高阶函数(abs是绝对值)
def calc(x,y): return abs,x,y a = calc(3,-10) print(a)
只要满足以下条件之一,即是高阶函数
1·接受一个或多个函数输入
2.return 返回另外一个函数。
越是困难的事越要立即去做,这样收益才会最大!!!