2014-02-07 3 views
1

python wrapper을 사용하여 API에 게시하려고합니다. 내가 pycharm에 도서관에서 다음 코드를 한 단계 때이 파이썬 코드를 어떻게 디버깅 할 수 있습니까?

# Make the request 
    self._make_request(
     self.BASE_URI + method, 
     params.encode("utf-8"), 
    ) 

내가 그것 (_make_request에서 다음 이유로 인해 장식의가 점프 있다고 생각

def retry(ExceptionToCheck, tries=3, delay=2, backoff=2): 
    """ 
    Retry decorator published by Saltry Crane. 

    http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/ 
    """ 

이 재시도 방법에 점프 아직 파이썬 장식자를 모르겠다.) :

그러나 나는 막 다른 골목에서 @retry에 중단 점을 설정하고 ExceptionToCheck를 보면 메시지가없고 인수가없는 빈 BaseException이 표시되기 때문입니다.

이 코드는 어떻게 든 _make_request 메소드를 건너 뜁니다 (이것은 pycharm에있는 단계입니다). 또는 @retry로 점프합니다.

이것을 디버깅하기 위해 취할 수있는 조치는 무엇입니까?

답변

1

스테핑 유지 - retry_make_request 주위의 래퍼로 적용되면 결국 해당 코드가 호출됩니다.

0

데코레이터 의 기능을 포함합니다. 즉, 데코레이터가있는 함수를 호출하면 데코레이터 함수가 대신 호출됩니다. 그러나 데코레이터 함수는 (보통) 데코 레이팅 된 함수를 호출합니다. 따라서 원래 함수를 호출 할 때까지 retry을 계속 진행해야합니다. 원본이 장식 자의 매개 변수 였기 때문에 return func(*args) 또는 무엇이든 볼 수 있습니다.

관련 문제