参考楼下层主的,可以使用了
Topic source这里args
是log()
的参数,字面意思就是说如果args
为可调用对象(这里指args是函数),说明log是以
@log
def func():
pass
这样的形式调用的(等价于func = log(func)
;此时log(args)
里的参数是func
,正是可调用对象)。对于这种情况,log(func)
应该返回一个wrapper
函数,因此必须返回decorator()
的调用结果。
如果args
不可调用(就是字符串了),根据要求应该返回一个装饰器,这里就是decorator
这个函数对象。因此
@log('excute')
def func():
pass
这里,执行@log('excute')
先返回decorator
,然后这个decorator
才再装饰func()
,即
@decorator
def func():
pass
- 1
程序猿潘先生
两问合在一起的代码如下
比较疑惑的是后面的return语句
有懂的麻烦帮忙解释下,谢谢