今天简单介绍一下decorator,它的作用是“装饰”(decorate or wrap)一个函数
- 原生形式
def greeting():
return 'hello python'
def uppercase_decorator(function):
def wrapper():
fun = function()
return fun.upper()
return wrapper
def normal_use():
g = uppercase_decorator(greeting)
print(g()) # HELLO PYTHON
if __name__ == '__main__':
normal_use()
- 使用decorator
"""
decorator: 不改变原来的函数,使用一个decorator对原来的函数加以修饰
这个decorator也是一个函数,它以函数为参量,内部定义一个修饰函数,返回值为修饰函数
也即建立了 original-function --> decorated function
"""
def uppercase_decorator(function):
def wrapper():
fun = function()
return fun.upper()
return wrapper
@uppercase_decorator
def greeting():
return 'hello world'
print(greeting()) # HELLO WORLD