函数的作用域,匿名函数,高阶函数

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 返回另外一个函数。

 

 



  

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/8533481.html