def log(text): def decorator(func): def wrapper(*args, **kw): print('%s %s():' % (text, func.__name__)) return func(*args, **kw) # 改成 func (*args, **kw) 对结果没影响 return wrapper return decorator
是否返回原函数对结果没影响,是因为在wrapper中直接调用原函数了,那么为什么要返回原函数,这俩种方法的差别只是体现在wrapper返回的是none么,反正已经执行了原函数,感觉对使用没有影响(知道这样写应该不对,但不知道到底为什么) 还请廖老师指点。
返回的不是原函数,是原函数执行后的结果,只是一个值,所以返回none也是可以的
当然有影响,如果你定义的是纯函数,不加return根本取不到函数执行的结果,只会得到None
return
None
Sign in to make a reply
浮生皆大欢喜
是否返回原函数对结果没影响,是因为在wrapper中直接调用原函数了,那么为什么要返回原函数,这俩种方法的差别只是体现在wrapper返回的是none么,反正已经执行了原函数,感觉对使用没有影响(知道这样写应该不对,但不知道到底为什么) 还请廖老师指点。