单例模式
class Dog(object):
__instence = None
def __new__(cls,*args,**kwargs):
if not cls.__instence:
cls.__instence = object.__new__(cls)
return cls.__instence
else:
return cls.__instence
dog1 = Dog()
dog2 = Dog()
print(id(dog1))
print(id(dog2))
输出
3035026006256
3035026006256
只初始化一次的单例模式
class Dog(object):
__instence = None
__init_flag = False
def __new__(cls,*args,**kwargs):
if not cls.__instence:
cls.__instence = object.__new__(cls)
return cls.__instence
else:
return cls.__instence
def __init__(self,name):
if Dog.__init_flag == False:
self.name =name
Dog.__init_flag = True
dog1 = Dog("旺财")
print(dog1.name)
dog2 = Dog("哮天犬")
print(dog2.name)
输出
旺财
旺财
数据库连接池:放在本地,夯住跟数据库的连接状态,本地要连接数据库取数据的时候,直接从数据库连接池里取连接。
优点:降低连接数据库时间,提高用户体验。