'''
装饰器:本质就是闭包函数
装饰器有什么作用:在不改变原有函数的基础上,给函数添加新功能
装饰器中需要传递一个函数进来
'''
# 有一个登录功能(函数),给登录(函数)功能添加效验
# def outer(function): #定义一个形参function,就是要添加功能的函数
# def inner():
# function() # 调用原函数
# print('验证登录信息') # 添加的功能
# return inner
#
# def login():
# print('我是一个登录函数')
# res = outer(login)
# res()
# login()
# 定义一个装饰器,计算函数运行的时间是多久
# import time # 导入日期时间模块
# print(time.time()) #1705767030.4433727 时间戳
#
# start_time = time.time() # 获取当前时间 开始时间
# for i in range(100000000):
# print(i)
# end_time = time.time() # 结束时间
# resout_time = end_time - start_time # for循环运行时间
# print(resout_time)
# 定义装饰器
import time
def outer(fun1): #fun1需要添加功能的函数
def inner():
# 计算函数耗时有多久
start_time = time.time()
fun1() # 原函数需要传参要怎么样做
end_time = time.time()
resout_time = end_time - start_time
print(f'当前程序总耗时:{resout_time}')
return inner
# 需要添加功能的函数
@outer # 语法糖 @outer 等同于 outer(fun1)
def fun2():
list1 = []
for i in range(1000000):
list1.append(i)
# print(list1)
# 调用函数
res = outer(fun2)
res()
fun2()