自定义装饰器
def foo():
print("发布文章")
def verify(func):
#验证用户权限
def verify_inner():
print("验证用户权限")
func()
return verify_inner
foo = verify(foo)
#~ verify()
#~ foo()
foo()
假设我们要增强printx函数的功能,比如,在函数调用前判断x的值是否符合我们的要求,但又不希望修改printx函数的定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。
def checkx(func):
def decfunc(x):
if x > 0:
print('x不能大于0')
return
else:
func(x)
return decfunc
@checkx
def printx(x):
print(x)
#~ printx(2)
printx(-2)