首页 > 编程语言 > 详细

【Python学习日记】B站小甲鱼:内嵌函数 闭包 和 lambda表达式

时间:2020-08-23 22:56:14      阅读:99      评论:0      收藏:0      [点我收藏+]

global关键字

在函数内部使用 global关键字可以修改并使用局部变量为全局变量

 

内嵌函数(内部函数)  python是支持函数的嵌套的,下面的程序会执行fun1()和fun2()的功能

def fun1():
    print(fun1被调用)
    def fun2():
        print(fun2被调用)
    fun2()
fun1()

 

闭包  下面的程序打印FunX(8)(5)也是一样的结果

def FunX(x):
    def FunY(y):
        return x*y
    return FunY
i = FunX(8)
print(i(5))

如果在嵌套函数里要使用局部变量可以使用关键字 nonlocal 

def FunX(x):
    def FunY():
        nonlocal x
        x *= x
        return x
    return FunY()

print(FunX(5))

 

匿名函数 lambda 以下两个程序是等价的

def ds(x):
    return 2*x +1
print(ds(5))

g = lambda x: 2 * x+1
print(g(5))

下面这两个程序也是等价的

def add(x,y):
    return x+y
add(4,5)

g =lambda x,y: x+y
print(g(3,4))

 

两个比较牛逼的BIF

过滤器filter()映射map()

filter(函数,序列) 把参数作为函数的实际参数,把返回true的函数列成新的列表 函数的功能是返回偶数

def odd(x):
    return x%2
temp = range(10)
show = filter(odd,temp)
print(list(show))

用lambda函数改写上面那个程序就是

show = filter(lambda x:x%2,range(10))
print(list(show))

map(函数,序列) 将序列中的每一个元素作为函数的参数进行加工,直到全部加工完毕返回新的序列

print(list(map(lambda x:x*2,range(10))))

上面这个函数返回(0,2,4,6,8,10,12,14,16,18,20)

【Python学习日记】B站小甲鱼:内嵌函数 闭包 和 lambda表达式

原文:https://www.cnblogs.com/JodyJoy1201/p/13550701.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!