简介
1.装饰器是什么?装饰器是一个函数。
2.装饰器就像是它的名字一样,是用来装饰的。
3.装饰器是用来装饰什么的呢?是用来装饰其他函数的。
4.它的用途是啥?
举一个例子,你要做一个网站的首页,每次你登录时都需要校验。你可以在你每次登录时,给你的核心函数,加一个装饰器。让装饰器对你的核心函数进行“增强”和“处理”,从而达到每次调用核心函数,他这个核心函数就自带校验的功效。
少废话,看代码
1.
# coding:utf-8
# 传入参数是函数
def a(func):
# 内联函数
def inner(*args, **kwargs):
# 对传入的函数进行处理
result = func(*args, **kwargs)
# 传入函数的结果进行校验
if result == "ok":
print("result is %s" % result)
else:
print("result is failed:%s" % result)
# 返回内联函数
return inner
# 装饰器
@a
def test(name):
return name
# 调用test函数。test函数带有装饰器进行函数增强
test("123")
结果:
2.
# coding:utf-8
# 传入参数是函数
def a(func):
# 内联函数
def inner(*args, **kwargs):
# 对传入的函数进行处理
result = func(*args, **kwargs)
# 传入函数的结果进行校验
if result == "ok":
print("result is %s" % result)
else:
print("result is failed:%s" % result)
# 返回内联函数
return inner
# 装饰器
@a
def test(name):
return name
# 调用test函数。test函数带有装饰器进行函数增强
test("ok")
结果:
3.
# coding:utf-8
# 传入参数是函数
def a(func):
# 输出传入参数
print(func)
# 内联函数
def inner(*args, **kwargs):
# 输出传入参数
print(args)
# 对传入的函数进行处理
result = func(*args, **kwargs)
# 传入函数的结果进行校验
if result == "ok":
print("result is %s" % result)
else:
print("result is failed:%s" % result)
# 返回内联函数
return inner
# 装饰器
@a
def test(name):
return name
# 调用test函数。test函数带有装饰器进行函数增强
test("ok")