时间:2020.12.09
环境:Python3
目的:装饰器使用
说明:
作者:Zhong QQ交流群:121160124 欢迎加入!
Python装饰器常用来对已有函数或对象提供一种无侵入、不改变原数据及结构的方式来达到增加额外功能的目的。例如,用户浏览页面前先进行检验是否用户已登录,通过登录验证后才能继续浏览网页;又例如对一个函数执行的时间耗费计算都可以使用装饰器完成。
以下自定义一个装饰器探索原理:
# 定义一个简单的装饰器 用于查看各阶段执行顺序
def my_decorator(func):
print(1)
def wrapper(*args, **kwargs):
print(3)
return func(*args, **kwargs)
print(2)
return wrapper
# 在函数上方使用装饰器
@my_decorator
def test():
print("This is test function")
return "ok"
# 调用函数
t = test()
print(t)
"""
以上代码按顺序输出以下的内容:
1
2
3
This is test function
ok
"""
由上可以看出,当调用被my_decorator装饰的test函数时,my_decorator装饰器的代码先执行。按照python代码从上至下执行的规则先输出1,然后是内部的一个