- 装饰器是AOP编程思想,给主体函数增加功能,又不让代码入侵到主体函数中,实现高内聚,低耦合。
- 参数有两种,一种是功能函数带参数、另外一种是装饰器函数带参数,如果装饰功能部分代码也需要参数的话,可以在原来的两层函数外面再加一层,专门用来接收参数。
- 下面我们通过两个小例子来学习
import time
def show_time(f):
def inner(*x):
start = time.time()
f(*x)
end = time.time()
print('speed %s'%(end-start))
return inner
@show_time
def add(*a):
sum = 0
for i in a:
sum += i
print(sum)
time.sleep(1)
add(1,2,3,5,6)
import time
def logger(flag=''):
def show_time(f):
def inner(*x):
start = time.time()
print(start)
f(*x)
end = time.time()
print(end)
print('speed %s'%(end-start))
if flag =='True':
print('日志记录')
return inner
return show_time
@logger('True')
def bar():
print('bar......')
time.sleep(2)
@logger()
def add(*a):
sum = 0
for i in a:
sum += i
print(sum)
time.sleep(1)
bar()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗