标签:print python import war imp pytho this table star
# singleton.py
import pymongo
from functools import wraps
def singleton(cls):
_instance = {}
@wraps(cls)
def get_instance(*args, **kwargs):
if cls not in _instance:
_instance[cls] = cls( *args, **kwargs)
return _instance[cls]
return get_instance
@singleton
class MyMongoClient(pymongo.MongoClient):
def __str__(self):
return (‘this is a 单例模式的应用‘)
if __name__ == ‘__main__‘:
cli = MyMongoClient()
print(cli)
cli2 = MyMongoClient()
print( cli is cli2)
代码演示如下:
(py3) jfxu@iZbp1gmf2s484lvojwrs4dZ:~$ python singleton.py
this is a 单例模式的应用
True
# singleton.py
import pymongo
class MyMongoClient(pymongo.MongoClient):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(MyMongoClient, cls).__new__(cls, *args, **kwargs)
return cls._instance
def __str__(self):
return ‘this is a 单例模式‘
if __name__ == ‘__main__‘:
cli = MyMongoClient()
print(cli)
cli2 = MyMongoClient()
print(cli is cli2)
代码演示如下:
(py3) jfxu@iZbp1gmf2s484lvojwrs4dZ:~$ python a.py
this is a 单例模式
True
标签:print python import war imp pytho this table star
原文地址:https://www.cnblogs.com/jfxu/p/11986631.html