设计模式中有一种应用比较普遍的一种,单例模式。今天就说说单例模式
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。
1、保证只有1个对象
2、只执行1次__init__方法
用一段简单的代码来解释一下:
class Person(object):
instance = None # 类属性
is_first_run = True
def __new__(cls, *args, **kwargs):
if cls.instance == None: # 当 instance 为 None 才创建新对象
cls.instance = object.__new__(cls)
return cls.instance
def __init__(self, name):
if Person.is_first_run: # 单例模式,只应该在第一次创建对象的时候初始化属性
self.name = name
Person.is_first_run = False # 修改标记
def set_name(self, new_name):
self.name = new_name
p1 = Person('张三')
print(p1.name)
p2 = Person('李四')
print(p2.name)
print(p1.name)
重点的地方都有注释,可以帮助大家理解