Python 将参数传递到requests.Session.get会引发TypeError

Python 将参数传递到requests.Session.get会引发TypeError,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,我试图理解为什么在我的示例中,将params传递到session.get会引发TypeError。 response\u get返回200响应,而response\u open引发类型错误 import requests class Foo: def __init__(self): self.session = requests.Session() def get(self, url, params=None): """Return a R

我试图理解为什么在我的示例中,将
params
传递到
session.get
会引发TypeError。
response\u get
返回
200
响应,而
response\u open
引发类型错误

import requests


class Foo:

    def __init__(self):
        self.session = requests.Session()

    def get(self, url, params=None):
        """Return a Response object."""
        return requests.get(url, params)

    def open(self, url, params=None):
        """Return a Response object using the Session object."""
        return self.session.get(url, params)


if __name__ == '__main__':
    foo = Foo()
    response_get = foo.get('https://estilen.github.io')
    response_open = foo.open('https://estilen.github.io')
错误:

Traceback (most recent call last):
  File "/home/estilen/Dropbox/Python/leapy/foo.py", line 21, in <module>
    response_open = foo.open('https://estilen.github.io')
  File "/home/estilen/Dropbox/Python/leapy/foo.py", line 15, in open
    return self.session.get(url, params)
TypeError: get() takes 2 positional arguments but 3 were given
回溯(最近一次呼叫最后一次):
文件“/home/estilen/Dropbox/Python/leapy/foo.py”,第21行,在
响应_open=foo.open('https://estilen.github.io')
打开文件“/home/estilen/Dropbox/Python/leapy/foo.py”,第15行
返回self.session.get(url,参数)
TypeError:get()接受2个位置参数,但给出了3个

问题是
get
需要:

您提供了两个:
url
params

要解决此问题,您需要提供
params
作为命名(关键字)参数:

return self.session.get(url, params=params)

self.session.get
中取出params参数,它就工作了…@whackamadoodle3000,这违背了我问题的目的:Pinteresing,我总是假设
会话.get
请求.get
是相同的。@LukaszSalitra好吧,它们的行为方式相同,但由于某些原因有不同的签名。。。
return self.session.get(url, params=params)