我正在尝试使用python wrapper发布到API。你知道吗
当我从pycharm中的库进入以下代码时
# Make the request
self._make_request(
self.BASE_URI + method,
params.encode("utf-8"),
)
它跳转到这个重试方法
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/
"""
我认为它跳到那里是因为在make请求中有以下decorator(尽管我还不了解Python decorators):
@retry(Exception, tries=3)
def _make_request(self, url, params=None, opener=None):
但是,我现在处于死胡同,因为如果我在@retry中设置断点并查看ExceptionToCheck,它只会显示一个没有消息和参数的空BaseException。你知道吗
这段代码是否以某种方式跳过了\u make\u request方法(这是pycharm中的step into所暗示的),或者是否以某种方式跳转到@retry。你知道吗
接下来我可以采取什么步骤来调试它?你知道吗
Keep stepping-
retry
作为_make_request
的包装器应用,它最终将调用该代码。你知道吗一个decorator包装一个函数。这意味着,当您调用具有decorator的函数时,将调用decorator函数。但是decorator函数随后(通常)会依次调用decorated函数。因此,您需要不断地遍历
retry
,直到到达它调用原始函数的位为止。因为original是decorator的一个参数,所以您可能会看到return func(*args)
之类的内容。你知道吗相关问题 更多 >
编程相关推荐