装饰器本质是闭包的语法糖。
Python装饰器的为了给被修饰函数,添加额外功能,这种添加功能的方式能够在不改变原函数形式的条件下,添加额外功能
# def getzsq(char):
# def check(func): 这是修饰函数(也是外函数)
# a = 10000
# def inner(b): 这是内函数
# print("登录验证", b, char)
# ret = func(b, char) 这是被修饰函数
# return ret
# return inner
# return check
# 外函数与内函数组的成闭包
# @getzsq("oooo")
# # fss:其实是inner内函数 = check(fss:被修饰函数)
# def fss(x, y):
# print("发说说", x, y)
#
# # fss = check(fss)
#
# if __name__ == '__main__':
# fss(1)
# class chen():
# def __init__(self):
# print(id(self))
#
# p = chen()
# print(id(p))
import time
def zsq(func):
startime = time.time()
def inner():
func()
time.sleep(3)
endtime = time.time()
print(endtime-startime)
return inner
@zsq
def p():
kong = []
for i in range(1000):
kong.append(i)
# print(kong)
# p函数是为被修饰函数,被修饰完在调用已经添加了额外的计时功能
if __name__ == '__main__':
p()



