在python中,如何使用单例模式?

时间:2015-01-17 13:32:11

标签: python

我的代码是:

  class Handler():

        # make it static
        from pymongo import MongoClient
        client = MongoClient("localhost", 27017)
        db = client.newsdb
        news = db.news

我想让客户端变量变为静态,那么上面的代码是正确的方法吗?我也想使用单例模式,因为MongoClient可能是非常大的元素,当我真的需要它时我想要new()这个元素....

我怎么能在python中做到这一点?作为一个初学者,也许会问一些愚蠢的问题,对此提前抱歉......

1 个答案:

答案 0 :(得分:3)

在Python中使用单例模式的最简单方法是将所有代码移动到单独的模块并导入它:

singleton.py:

    from pymongo import MongoClient
    client = MongoClient("localhost", 27017)
    db = client.newsdb
    news = db.news

并在其他模块中使用它:

import singleton
print(singleton.news)