如下图,代码中4个数据,产生了4个页面,怎么实现只打开一个页面?可使用单例模式
查询得知 单例模式实现有5种方法,参照链接下:
https://blog.csdn.net/SixStar_FL/article/details/126894579
1. 使用模块
2. 使用装饰器
3. 使用类
4. 基于 __new__ 方法实现
5.基于 metaclass 方式实现
这里我们是用装饰器方法,代码如下:
1 def singledriver(cls,*args,**kw): 2 instances = {} 3 def _singledriver(): 4 if cls not in instances: 5 instances[cls] = cls(*args,**kw) 6 return instances[cls] 7 return _singledriver 8 9 @singledriver 10 class SingleDriver(): 11 """driver单例""" 12 def __init__(self): 13 self.driver = webdriver.Firefox() 14 15 class BasePage(): 16 """基类 用作初始化 封装常用操作""" 17 18 def __init__(self): 19 """ 20 初始化driver 21 """ 22 self.driver = SingleDriver().driver
分析如下:
1、