Создание соединения при вызове переменной в шаблоне Singleton - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь создать класс, который будет использоваться для создания соединений с необходимыми серверами или базой данных в зависимости от ответа первого сервера.Эти соединения можно использовать повсеместно в большом проекте, который включается в цикле несколько раз в день.Соединение с каждым сервером не всегда необходимо, поэтому я хочу, чтобы они установили это соединение по вызову, а затем поддерживали его до завершения сценария.

Я пытался использовать шаблон 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.

Я пытался что-то делать со свойствами, но я новичок в них и не знаю, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...