python函数(3)

本文介绍了Python中的高阶函数,包括map、filter、reduce和sorted等内置函数,以及lambda表达式的使用。接着讨论了闭包的概念,强调其在创建私有变量和封装数据方面的优势。然后引入了装饰器,解释了装饰器在不修改原有函数基础上扩展功能的重要性。详细阐述了如何使用装饰器,并提到了Python内置的装饰器如@property、@staticmethod和@classmethod。最后,探讨了列表推导式和生成器,生成器通过yield关键字实现高效的空间利用。
摘要由CSDN通过智能技术生成


1.高阶函数

  • 接收函数作为参数,或者将函数作为返回值返回的函数就是⾼阶函数
# 参数为函数
def bar():
    print("function bar")
def foo(func):
    func()
    print("function bar")

foo(bar)
foo(bar)

在这里插入图片描述

# 返回值为函数
def bar():
    print("function bar")
    return 1
def foo(func):
    print("function foo")
    return bar
res=foo(bar)
res()
res()

在这里插入图片描述

  • 函数名(如bar 、foo)–>为该函数的内存地址,函数名+括号(如 bar()、foo() )–>调用该函数。
  • Python内置高阶函数map、filter、reduce、匿名函数lambda、sorted
  • lambda 只是一个表达式,函数体比 def 简单很多。主体为一个表达式,而不是一个代码块。在lambda表达式中只能封装有限的逻辑。lambda 函数有自己的命名空间,不能访问自己参数列表之外或全局命名空间里的参数。
lambda [arg1 [,arg2,.....argn]]:expression
# lambda 参数列表:return [表达式] 变量
# lambda返回一个函数对象(构建的是一个函数对象),需要一个变量去接收
foo = lambda a, b: a + b
print(foo(10, 20))

在这里插入图片描述

  • map函数接收两个参数,函数和序列,把序列中的值用函数处理再依次返回至列表内。map函数返回一个迭代器对象
def square(x):
    return x ** 2

print(list(map(square, [1, 2, 3, 4, 5])))

在这里插入图片描述

  • filter函数接收一个函数和一个序列,用于过滤。返回一个迭代器对象
print(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值