装饰器的作用:装饰器即可以装饰函数也可以装饰类。
装饰器的原理:函数也是对象
1.定义装饰器
def decorator(func):
def wrapper (*args, **kargs):
#可以自定义传入参数
print(func.__name__)
# 返回传入的方法名参数的调用
return func(*args, **kargs)
#返回内层函数函数名
return wrapper
2.使用装饰器
假设decorator是定义好的装饰器。
方法一:不用@符号
# 装饰器不传入参数时
f = decorator(函数名)
# 装饰器传入参数时
f = (decorator(参数))(函数名)
方法二:使用@符号
# 已定义的装饰器
@decorator
def f():
pass
# 执行被装饰过的函数
f()
网友评论