在Python中, 一切都是对象。这意味它可以是字典的值、列表的项或是另一个对象的属性,可以作为参数传递给高阶函数。
def function_decorator(func):
def wrapper():
# do something
func()
# do something
return wrapper
def function():
print('I\'m a normal function.')
function = function_decorator(function)
function()
这里将function传入,然后返回新的wrapper,wrapper里一般会调用function不然就没必要用装饰器了。
以上的
decorated_function = function_decorator(function)
在Python里提供了一个特定的语法使得它看上去更直观,更简单:
def function_decorator(func):
def wrapper():
# do something
func()
# do something
return wrapper
@function_decorator
def function():
print('I\'m a normal function.')
# decorated_function = function_decorator(function)
function()
用一个@function_decorator代替了直接调用decorated_function = function_decorator(function)
就这样了
本文深入浅出地介绍了Python装饰器的概念及其使用方法。通过具体的代码示例,详细解释了如何定义装饰器以及如何利用装饰器来增强或修改函数的功能。
1842

被折叠的 条评论
为什么被折叠?



