python实现单例模式

什么是单例模式?
单例模式即一个类且仅有一个实例,那么如何通过python实现一个类只有一个实例呢?
首先是创建一个class类

class test:
    pass
a=test()
print(id(a))
b=test()
print(id(b))

helklo
从图片可以看出打印的实例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相同,是同一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值