自己写的
Topic source你这的输出显示的是 begin call execute f(): end call 虽然end call在execute f():之后输出,但是实际上f()此时还没有执行,题目要求的是先执行再输出。
#coding=utf-8
def log(text=None):
def decorator(func=None):
print('begin call')
def wrapper(*kw,**ks):
if not callable(text):
print('%s %s():' %(text,func.__name__))
r = func(*kw,**ks)
else:
print('call %s():' %(text.__name__))
r = func(*kw,**ks)
print('end call')
return r
return wrapper
if not callable(text):
return decorator
else:
return decorator(text)
这样就符合题意了!
- 1
查拉开大家
运行结果:
带'execute' begin call execute f(): end call
不带'execute' begin call call f(): end call