设计模式之单例模式

单例模式详细介绍

class graph_traversal(object):

    instance = None
    def __new__(cls, *args, **kwargs):
        if cls.instance is None:
            cls.g = Graph().traversal().withRemote(DriverRemoteConnection(GERMLIN_SERVER_URL, TRAVERSAL_SOURCE))
            print("connect success!")
            cls.instance = super(graph_traversal, cls).__new__(cls, *args, **kwargs)
        return cls.instance

    def get_graph(self):
        return self.g

你调用多次就只会打印一个"connect success!"

常用的方法如下:

其实,Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象了。如果我们真的想要一个单例类,可以考虑这样做:

mysingleton.py

class Singleton(object):
    def foo(self):
        pass
singleton = Singleton()

将上面的代码保存在文件 mysingleton.py 中,要使用时,直接在其他文件中导入此文件中的对象,这个对象即是单例模式的对象

from a import singleton
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页