在Singleton模式中调用变量时创建连接

时间:2019-01-25 13:12:27

标签: python singleton

我正在尝试创建一个类,该类将用于与必需的服务器或数据库建立连接,具体取决于第一个服务器的响应。这些连接可以在大型项目中的任何地方使用,而大型项目一天要循环打开几次。与每个服务器的连接并非总是必要的,因此我希望他们在调用时建立这些连接,然后保持连接直到脚本结束。

我尝试使用Singleton模式,但是我不知道如何在通话中创建连接。

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时才能创建这些连接。

我试图对属性做一些事情,但是对它们来说我是新手,不知道该怎么做。

0 个答案:

没有答案