所以基本上我正在尝试做一些我不知道它是否会起作用的事情。我已经尝试过了,但是它当然行不通。我的计划是发送一个带有**** kwargs **的值,然后我以后可以在另一个处理该值的类中使用它。
等:
from my_requests_class import request_method
send_to_request = request_method()
value_to_send = "Hello stackoverflow"
def send():
while True:
try:
url = 'https://www.google.com'
headers = {
'User-Agent': ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
' (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36')
}
resp = send_to_request.get(url, headers=headers, verify=False, timeout=12, text=value_to_send)
resp.raise_for_status()
except HTTPError as err:
randomtime = random.randint(0, 1)
print("Woopsi, couldn't send!")
time.sleep(randomtime)
continue
这是我的第二堂课:
class request_method(Session):
def __init__(self, *args, **kwargs):
Session.__init__(self, *args, **kwargs)
def request(self, method, url, *args, **kwargs):
resp = Session.request(self, method, url, *args, **kwargs)
print(value_to_send)
但是,如果我运行这种代码,我会得到
request() got an unexpected keyword argument 'text'
表示我无法向requests()添加值-所以我对您的问题是如何将 value_to_send 发送到另一个类{{1 }}?这样我就可以打印
def request(self, method, url, *args, **kwargs):
答案 0 :(得分:0)
问题是您将所有给定的kwargs
从自定义请求方法直接传递给Session.request
。您仍然可以将其他关键字参数传递给自定义方法,但是必须确保不要将无效的关键字args传递给Session.request
。
您可以通过在pop
上调用kwargs
来检索并删除要传递给自定义方法而不是Session.request
的特殊关键字参数。< / p>
例如:
class RequestMethod(Session):
def request(self, method, url, *args, **kwargs):
text = kwargs.pop("text", "")
resp = Session.request(method, url, *args, **kwargs)
在您的示例text
中,现在"Hello stackoverflow"
具有作为关键字参数传递的值,并且不再包含在kwargs
中。