Я пытаюсь создать класс, который будет использоваться для создания соединений с необходимыми серверами или базой данных в зависимости от ответа первого сервера.Эти соединения можно использовать повсеместно в большом проекте, который включается в цикле несколько раз в день.Соединение с каждым сервером не всегда необходимо, поэтому я хочу, чтобы они установили это соединение по вызову, а затем поддерживали его до завершения сценария.
Я пытался использовать шаблон Singleton, но не могу понять, как создать соединение наcall.
class ConnectionEstablisher:
server_conn = connector(serv1)
@staticmethod
def instance():
if '_instance' not in ConnectionEstablisher.__dict__:
ConnectionEstablisher._instance = ConnectionEstablisher()
return ConnectionEstablisher._instance
def main():
s1 = ConnectionEstablisher.instance()
s2 = ConnectionEstablisher.instance()
assert s1 is s2
assert s2.server_conn == s1.server_conn
print('Asserions passed')
Приведенный выше код соответствует базовому предположению, что он не будет пытаться создать несколько соединений с сервером, но он всегда создает эти соединения, даже когда в этом нет необходимости.Я хотел бы создать эти подключения только при вызове этого s1.server_conn.
Я пытался что-то делать со свойствами, но я новичок в них и не знаю, как это сделать.