디버깅 할 때 함수의 모든 입력과 출력을 인쇄하고 싶습니다 (더 나은 IDE가 필요하다는 것을 알고 있지만 유머가 나옵니다. 오류보고에 사용될 수 있습니다).파이썬에서 @debuggable 데코레이터를 작성하는 방법은 무엇입니까?
@debuggable
def myfunc(argA,argB,argC):
return argB+1
을 켜거나 디버깅 해제 전환 전역 변수를 사용 : 그래서, 내가 이상적으로 가지고 싶습니다. 아니, 당신도 지구본을 좋아하지 않는다고 나는 짐작했다.
내가 가지고 올 수있는 최선은 다음과 같습니다
DEBUG = True
def debuggable(func):
if DEBUG:
def decorated(*args):
print "Entering ",func.func_name
print " args ",args
ret = func(*args)
print ret
return ret
return decorated
else:
return func
@debuggable
def myfunc(this,that):
return this+that
및 실행 :
>>> myfunc(1,3)
Entering myfunc
args (1, 3)
4
내가 어떻게 향상시킬 수 있습니까?
의
데코레이터는 더 같이 보일 수 있습니다 [Word Aligned] (http://wordaligned.org/articles/echo)에서 데코레이터를 추적합니다. –