Day_10_Am_Simple_Decorator
# 装饰器
# 作用: 在不修改原函数的情况下, 在函数调用之前和之后添加装饰(功能)
#
def eat():
print('吃饭')
def run():
print('跑步')
# def eat2():
# print('吃饭前先跳个舞')
# eat()
# run()
# print('吃饭后唱个歌')
def outer(fn):
print('先跳个舞')
fn()
print('再唱个歌')
outer(eat)
outer(run)
print('_' * 100)
# 简单装饰器
def outer2(fn): # fn = eat2
def inner():
print('先跳个舞')
fn() # eat2
print('再唱个歌')
return inner
@outer2
def eat2():
print('吃饭2')
# 使用装饰器: 原理
eat2 = outer2(eat2)
# print(eat2.__name__) # inner
# 调用函数
# eat2() # inner()
# 3. 写一个装饰器来统计函数运行的时间
import time
# 装饰器
def outer3(fn):
print("fn: ", fn.__name__) # fn: show
def inner():
s = time.time()
fn()
e = time.time()
print(e - s)
return inner
@outer3
# @outer3 <=> show = outer3(show)
def show():
s = 0
for i in range(10000000):
s += i
# print(s)
# s = time.time() #当前时间, 时间戳(秒), 1596164482.761053
print("show: ", show.__name__) # inner
show()
# e = time.time()
# print(e - s)