装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足:
1.不能修改被装饰的函数的源代码
2.不能修改被装饰的函数的调用方式
3.满足1、2的情况下给程序增添功能
例题代码:
# _*_ coding: utf-8 _*_
# Date: 2019/7/31 0031 17:21
# Author: Mijiu
# Version: 1.0
import time
def time_(func): # 装饰器一
def time__(*args,**kwargs):
data = time.time()
a = func()
s =time.time()-data
print(f"程序执行时间为:{s}")
return a
return time__
def login(func):
"""装饰器2"""
def login_(*args,**kwargs):
print("------主页-------")
a = func()
return a
return login_
@login
@time_
def fun():
for i in range(100):
for j in range(100):
print(i**j)
@time_
@login
def fcc():
print("我是顾帅帅")
time.sleep(1)
print("-"*20)
fcc()