Python补充 高阶函数 闭包 装饰器
Python补充 高阶函数 闭包 装饰器
高阶函数
高阶函数的定义:
1.此函数传入或接收的参数是一个函数名
2.此函数的返回值是一个函数名
3.满足上述两个条件中任意一个,都可称之为高阶函数
#函数名作为参数 def foof(): print('this is func') def test(func): print(foof) test(foof) #函数名作为返回值 def test(): print('test') return test x=test() print(x()) D:/programSoft/PyCharm_pro/projects/pro/func.py test test <function test at 0x00628E40> #函数名作为参数且返回函数名 def foof(): print('func output is foof') def test(func): print('func name is '+func.__name__) return func x=test(foof) x() D:/programSoft/PyCharm_pro/projects/pro/func.py func name is foof func output is foof
闭包
def funca(): x=5 def funcb(): nonlocal x x=x+1 return x return funcb def funcc(): x=5 x=x+1 return x x=funca() print(x()) print(funcc()) print(x()) print(funcc()) D:/programSoft/PyCharm_pro/projects/pro/func.py 6 6 7 6
装饰器
装饰器本质就是函数,功能是为其他函数添加附加功能。
原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式。
装饰器=高级函数+函数嵌套+闭包
import datetime LOG_FILE='系统日志.log' def decorator(func): def wrapper(): x=open(LOG_FILE,'a') print(datetime.time) x.write('function executes at :') func() x.close() return wrapper @decorator def test(): print('haha') test()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY