【发布时间】:2019-07-17 15:37:45
【问题描述】:
一直在研究 python3 中的一些decorators。下面是一个代码sn-p。为什么我需要返回函数 (fn),当它在 wrapper 函数内部调用时
from functools import wraps
def log_function_data(fn):
@wraps(fn)
def wrapper(*args, **kwargs):
print(fn.__name__)
print(fn.__doc__)
return fn(*args, **kwargs) #why am i returning this?
return wrapper
@log_function_data
def add(x,y):
'''Adds 2 numbers and returns'''
return x + y
add 函数已经在返回操作结果。所以我在没有decorator 的情况下调用添加函数,返回的工作方式如下:
def add(x,y):
'''Adds 2 numbers and returns'''
return x + y
result = add(2,3) ##have the result = 5
【问题讨论】:
-
标记一个问题,没有 cmets 是一种耻辱!
标签: python-3.x python-decorators