我坚持使用一个类中的方法,在某些情况下应该递归调用自己。
def request(self, reqs, **kwargs):
if not self.token:
self.get_session_token()
params = {}
params["token"] = self.token
for key, value in kwargs.items():
params[key] = value
url = "https://" + self.ip + ":" + self.port + "/" + reqs
req = requests.get(url, params, verify=False)
if req.json()['ok'] == False:
self.token = None
return self.request(reqs, **kwargs)
else:
return req
return self.request(reqs, **kwargs)
行是代码再次调用该方法的地方。但是,代码只会跳回到包含它的if语句。
我做错了什么?
修改
使用提供此方法的类有代码。该方法每隔几分钟执行一次。如果"令牌"在此期间变为无效,if服务器将返回"ok" == False
,因此self.token
设置为None
,并且应再次调用该方法以请求新令牌 - > self.get_session_token()
。