第十二章:函数 - 函数三

本文介绍了Python中的匿名函数、闭包和装饰器。详细讲解了filter函数、lambda表达式及其应用,以及sort和sorted函数的使用。接着探讨了闭包的概念、创建闭包的好处和条件。最后,引入了装饰器的概念,阐述了装饰器如何扩展函数功能,以解决代码维护和扩展性问题。
摘要由CSDN通过智能技术生成

01.- 函数 - 匿名函数

1.filter(fnuction,iterable) --> filter(函数,可迭代的) -->filter(函数,序列)

可以从序列当中过滤出符合条件的元素,保存到一个新的序列当中
参数一 : 传递函数 参数二 : 需要过滤的序列
返回值 过滤后新的序列

# 定义一个函数 可以将指定列表当中的所有偶数,保存到一个新的列表中返回
l = [1,2,3,4,5,6,7,8,9,10]

# 定义一个函数,用来检测一个任意的偶数
def fn2(i):
    if i % 2 == 0:
        return True

# 定义一个函数,用来检测指定数字是否大于5
def fn3(i):
    if i > 5:
        return True
    return False

# 创建一个新的列表
new_list = []

# 定义一个函数
def fn4(i):

    if i % 3 == 0:
        return True
    return False

def fn(func,lst):    # 传一个变量 n

    for n in lst:

        # 判断 n 的奇偶
        # if not fn2(n):       # [2, 4, 6, 8, 10]
        # if fn3(n):           # [6, 7, 8, 9, 10]
        if func(n):            # [2, 4, 6, 8, 10]
            new_list.append(n)

    # 返回新的列表
    return new_list

print(fn(fn4,l))   #  [3, 6, 9]
# 当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数

print(filter(fn4,l))  # <filter object at 0x000002570D6966D8>
print(list(filter(fn4,l)))   # [3, 6, 9]

2.lambda表达式

lambda函数表达式专门用来创建一些简单的函数,它是函数创建的另一种方式

语法 lambda 参数列表[a,b,c…] : 返回值

((lambda a,b : a+b)(10,20) 一般不这么写

print(fn5(123,456))      # 579
print(lambda a,b : a+b)  # <function <lambda> at 0x00000130CEA1B2F0>     打印结果比一般的打印结果少个名称,所以才叫做匿名函数
print((lambda a,b : a+b)(10,20)) # 30  一般不这么写

def fn5(a,b):
    return a + b
fn6 = lambda a,b: a+b
print(fn6(30,20))    # 50      一般这么写

3.lambda函数表达式的应用

l = [1,2,3,4,5,6,7,8,9,10]

# def fn(i):
#     return i % 3 == 0
# lambda i : i % 3 == 0

r = filter(lambda i : i > 5,l)
print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值