什么是单例模式?
单例模式即一个类且仅有一个实例,那么如何通过python实现一个类只有一个实例呢?
首先是创建一个class类
class test:
pass
a=test()
print(id(a))
b=test()
print(id(b))
从图片可以看出打印的实例id发现,test类默认创建了两个实例,那如何通过python实现一个类只创建一个实例呢?这里就用到了单例
代码如下:
from selenium import webdriver
class test:
driver=None
def __init__(self):
pass
@classmethod
def mydriver(cls,browser=''):
#如果cls.driver为空,证明是第一次创建实例
if cls.driver==None:
if browser=='Firefox':
#创建实例
cls.driver=webdriver.Firefox()
elif browser=='Chrome':
cls.driver=webdriver.Chrome()
return cls.driver
else:
#返回上一个对象的引用
return cls.driver
demo1=test.mydriver('Firefox')
print(id(demo1))
demo2=test.mydriver('Firefox')
print(id(demo2))
打印结果如下:
可以看出它们id相同,是同一个对象