Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试此python代码?_Python - Fatal编程技术网

如何调试此python代码?

如何调试此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

我正在尝试使用一个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 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):