Python中如何使用_new_实现单例模式
发布时间:2025-10-22 21:25:41
单例模式是一种经典的设计模式。简而言之,一种单例模式只能实例化一次,实例变量在第一次实例化时已经固定。
None是Python中常见的单例模式,这是一种典型的设计,通常使用 if xxx is None或if xxx is not 比较None的运算。

Python实现单例模式
代码如下:
classMyClass: _instance=None _first_init=False def__new__(cls,*args,**kwargs): ifnotcls._instance: cls._instance=super().__new__(cls) returncls._instance def__init__(self,var1,var2: cls=type(self) ifnotcls._first_init: self.var1=var1 self.var2=var2 cls._first_init=True
如上所示,我创建了一个MyClass类,定义了两个类变量,第一个是_instance,它负责保存这种创造的例子。二是_first_init,它是一个布尔值,是否保存为第一个实例类。
相关推荐:Python视频教程
在__new________________________________________________________.__new__(cls)创建实例,即调用父类object.__new__(MyClass)创建实例。
在__init__方法中(初始化函数),我们通过cls=type(self)获取MyClass类别,判断是否是第一次实例化。假如是第一次实例化,就绑定实例变量。否则什么都不做。
运行效果
让我们创建两个例子进行比较
>>>instance1=MyClass(1,2) >>>instance2=MyClass(7,5) >>>id(instance1)==id(instance2) True >>>instance2.var1 1
可以看出,这两个例子的内存地址是相同的,第一个例子后变量已经固定,整体情况不会改变。
这就是单例模式的实现。
相关推荐:
Python等方法new_______________init__方法介绍
