-2
저는 파이썬에서 데코레이터를 이해하려고합니다.왜이 python 데코레이터가 작동하지 않습니까?
def decorator(func):
def logger(*args, **kwargs):
print "start logging"
func(*args, **kwargs)
print "end logging"
return logger
@decorator
def add(a,b):
return a+b
을 내가 add(2,3)
를 호출하면 출력 될 것입니다 : 그러나
start logging
end logging
을 내가 logger
의 정의에 return func(*args, **kwargs)
을 내 코드를 수정하고 작성하는 경우 다음이 작동하지 않는 이유를 이해가 안 돼요 작동하지만 그 다음 end logging
은 출력에 기록되지 않습니다.
'return' 할 때 함수가 끝납니다 ... 함수를 호출 한 결과를 * * print * * 다음에 반환합니다. – jonrsharpe
'logger' 함수는'func'의 값을 반환해야하지만, 끝까지 끝낼 수는 없습니다. 이제 조금 생각해보십시오. 어떻게'func' 호출의 결과를 저장할 수 있습니까? 나중에 다시 돌려 줄 수 있을까요? –