如何调试此python代码?
我正在尝试使用一个API来发布一个API 当我从pycharm中的库中进入以下代码时如何调试此python代码?,python,Python,我正在尝试使用一个API来发布一个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 dec
# 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_request中有以下decorator(尽管我还不了解Python decorators):
但是,我处于死胡同,因为如果我在@retry中设置断点并查看ExceptionToCheck,它只会显示一个没有消息和参数的空白BaseException
这段代码是否以某种方式跳过了_make_request方法(这是pycharm中的步骤所暗示的),或者是否以某种方式跳转到@retry
我接下来可以采取什么步骤来调试它?保持单步执行-
重试
作为\u make\u request
的包装,它最终将调用该代码。装饰程序包装函数。这意味着,当您调用一个具有decorator的函数时,将调用decorator函数。但是装饰函数随后(通常)会依次调用装饰函数。因此,您需要继续单步执行重试
,直到到达调用原始函数的位置。由于原始参数是装饰器的一个参数,您可能会看到类似于return func(*args)
之类的内容
@retry(Exception, tries=3)
def _make_request(self, url, params=None, opener=None):