Python装饰器的功能妙用
主要功能: 在不修改源代码的基础上,给函数添加额外的功能
添加计算次数的功能:
# 计算函数执行的次数
def set_fun(func):
print("*"*30)
sum = 0
def call_fun():
nonlocal sum
sum += 1
print("打印第%d次"% sum)
func()
return call_fun
@set_fun # test = set_fun(test)
def test():
print("天很懒")
test()
test()
test()
添加计算时间的功能:
# 只算函数执行的时间
import time
def set_fun(func):
def call_fun():
print("123")
statr_time = time.time() # 开始的时间
func()
end_time = time.time() 结束的时间
print("时间差:",end_time-statr_time)
return call_fun
@set_fun # test = set_fun(test)
def test():
time.sleep(1)
print("要下雨了")
test()