在python中,如何使用singleton模式?

In python, How to use singleton patten?

本问题已经有最佳答案,请猛点这里访问。

我的代码是:

1
2
3
4
5
6
7
  class Handler():

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

我想让客户机变量是静态的,所以上面的代码是正确的方法吗?我还想使用singleton模式,因为mongoclient可能是非常大的元素,当我真正需要它时,我想新建()这个元素……

我怎么能用Python做呢?作为一个初学者,可能会问一些愚蠢的问题,为此提前道歉…


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

单身:

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

在其他模块中使用它:

1
2
import singleton
print(singleton.news)