def log(func):
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
@log
def now():
print('2017-5')
为什么在中间嵌套包装函数,为什么不呢?这是我在stackoverflow中的第一个问题而且我不擅长英语。所以我的描述有任何问题,请原谅我。谢谢!!!
def log(func):
print('call %s():' % func.__name__)
return func(*args, **kw)
@log
def now():
print('2017-5')
答案 0 :(得分:0)
关于装饰者的一点:
port=$1
if [[ $port -eq 3[0-9]00 ]];then
echo "Yes"
else
echo "No"
fi
完全等于:
@decorator
def func():
...
您可以注意到,在您的程序中调用函数func = decorator(func)
的任何时候,都会在第一个选项中调用print('call %s():' % func.__name__)
。在第二个选项中,当装饰器仅应用而不调用now
时,将调用此print
。
使用嵌套函数,因为decorator用修改后的函数替换原始函数。