- 作用域
什么是作用于,一个函数就是一个作用域!
就好比上一章中提到的蛮王画的圈子,就是一个作用域。
- 匿名函数
lambda 就是我们匿名函数的关键字
匿名函数其实就是没有函数名的函数。
def func(x,y):
return x+y
func1= lambda x,y:x+y #声明一个匿名函数。
print(func(4,5))
print(func1(4,5))
看代码,就不上图了,执行结果是
9
9
匿名函数一般和其他函数搭配使用
map()函数有两个参数,第一个参数是一个函数。第二个参数是一个序列。
作用就是把序列中每一个元素传到前面的函数中执行一遍,然后再输出一个序列。
看代码:
res = map(lambda x:x*x,[1,2,3,4,5,6])
for i in res:
print(i)
因为map中的函数只在map中使用,不需要有名字被调用,所以匿名函数最合适。
- 高阶函数
我们知道普通的函数,是可以传进一个变量作为参数,加以处理,并返回一个值,
那高阶函数是什么呢?高在哪里呢?
既然普通函数是以变量为参数传递,我们是高阶,当然就不能传变量啦,我们传递的是函数
也就是说,如果一个函数,他的参数是另一个函数,那么我们就称它为高阶函数。
同理,如果一个函数返回值是另一个函数(而非函数的值)那么我们也称他为高阶函数
def add(x,y,f):
return f(x) + f(y)
res = add(3,-6,abs)
print(res)
输出结果:9
看一下代码,函数add有三个参数,x,y,f,
在调用函数add的时候我们看到传进去三个参数分别为(3,-6,abs)
其中abs为python内置函数。用于计算绝对值。我们稍后会讲。
也就是说add函数的参数中有另一个函数。所以add()就是高阶函数。