如果你使用的是python 3.10,并且不介意改变,你可以在connect方法之后定义会话,然后直接传入
self
无论如何,这是一种静态方法
class SomeApi():
def __init__(self):
self.api_key = '123'
@staticmethod
def connect():
print("Connecting to SomeAPI API")
session = requests.session()
session.headers = {'Accept-Encoding': 'deflate,gzip'}
session.verify = False
return session
def request(self):
print(f'Making request with session ID {id(self.session)}')
session = InitOnAccess(connect)
如果你还没有使用python 3.10,你可以这样做
class SomeApi():
def __init__(self):
self.api_key = '123'
@staticmethod
def connect():
print("Connecting to SomeAPI API")
session = requests.session()
session.headers = {'Accept-Encoding': 'deflate,gzip'}
session.verify = False
return session
def request(self):
print(f'Making request with session ID {id(self.session)}')
session = InitOnAccess(connect.__get__(object))
然而,这看起来相当粗鲁。
我建议搬家
connect
从您的类中取出,并且不要将其作为静态方法。对我来说似乎没有那么粗鲁和干净。