我想专门化/子类化请求包,以添加一些具有自定义功能的方法。
我尝试这样做:
# concrete_requests.py
import requests
class concreteRequests(requests):
def __init__(self):
super(concreteRequests, self).__init__()
self.session()
def login(self):
payload = {'user': 'foo', 'pass': 'bar'}
self.get('loginUrl', headers=header, data=payload)
# more login stuff...
# my_class.py
class MyClass:
def __init__():
self.requests = concreteRequests()
self.requests.login()
这样,我仍然可以从self.requests
成员和我的具体实现中受益。所以,我可以这样做:self.requests.get(...)
或print(self.requests.post(...).status_code)
等等。
我想这行super(concreteRequests, self).__init__()
可能是愚蠢的无用,因为请求只是在导入中没有任何类声明。
因此,可以通过继承对请求包进行子类化/专门化吗?
requests
是python模块而不是类。您只能继承类。
因此,基本上,您应该只在自己的自定义类中利用其方法/功能。
import requests
class MyRequests:
def __init__(self, username, passwd):
self.username = username
self.passwd = passwd
def get(self, *args, **kwargs):
# do your thing
resp = requests.get(...)
# do more processing
我在上面写的只是一个让您前进的例子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句