装饰器第1天
2022-09-11
装饰器
装饰器的定义:
装饰器是一种特殊的闭包函数,该闭包函数中有且只有一个参数,且该参数是一个函数类型。
装饰器的作用:
装饰器可以给已有函数添加新的功能。
装饰器的特点(区别与其他函数):
(1)它不会改变原来函数调用的方式。
(2)它不会改变原来函数的源代码。
(3)可以给原来的函数添加新的功能。
与装饰器配合使用的是:
装饰器语法糖。
装饰器语法糖的使用格式:
@装饰器名称
装饰器语法糖的作用:
类似于一种既定模式,设置后,表示原来函数有一个装饰器。
注意:在执行一个包含装饰器函数的Python代码,当内存加载该函数后,会先执行装饰器代码。
装饰器使用举例:
1 def func_out(func): 2 def inner(): 3 print("登陆成功") 4 func() 5 return inner 6 7 @func_out 8 def func(): 9 print("发表评论") 10 11 func()
说明:
(1)第1-5行是声明了一个装饰器,它本质上是一个闭包。第3行表示要给原来函数增加的功能。第1行原来的函数作为一个参数传入。
(2)在第7行中,是一个装饰器语法糖的声明。表示下面的函数要用到装饰器。
(3)第8行指的是原来的函数。
(4)第11行,调用原来的函数,有了装饰器后,执行装饰器内的代码。
运行结果图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南