函数作用域和匿名函数

2019年5月1日17:50:23 发表评论 1,027 views
匿名函数
filiter(lambda x: x>10,li)
lambda 参数: 表达式
匿名函数的应用场景
简单的函数,可以不使用def定义,使用匿名函数即可
类似于filter和map等函数里面,可以使用匿名函数来处理
匿名函数的合理使用可以让代码更简洁
函数作用域
外部不能访问函数内部变量
函数内部能够访问函数外部变量
函数里面不能修改函数外部变量
函数里面和函数外面变量名相同
global全局变量
x = 1
def fun1():
    global x
    x = x+1
    rutrun x
nonlocal(局部变量)
def fun2():
    a = 1
    def fun3():
        nonlacal a
        a = a+1
        return a
    return fun3()
函数作用域
函数内部:函数内部的变量,作用域只在函数内部,函数内部不能直接修改函数外部的变量。
global:函数内部如果需要更改全局变量,就需要使用global修饰变量
nonlocal:在函数嵌套函数的情况下,同样也有函数作用域问题,但是python3中提供了方便,只需要使用nonlocal就可以在里层函数的内部修改外层函数变量
闭包
闭包是函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包
闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用
闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁
.
递归
def fun(n):
    if n ==1:
        return 1
    return fun(n-1)*n
回调:
def back(fu,n):
    if n:
        fu()
    else:
        print('xx')
def fu():
    print('huidiao')
back(fu,n)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: