什么是单例设计模式?
程序运行过程中,确保一个类只有一个实例对象,不管在哪个模块获取这个类的对象,获取到的都是同一个对象,该类被成为单例类。
实现方式
由于每创建一个实例对象都会调用__new__ 方法申请一个新的内存空间,因此可以手动设置__new__方法来限制内存空间的申请。使得无论创建多少个实例对象都只能指向同一个内存空间,这意味着所创建的所有实例对象都是同一个对象。
申请内存空间
class Student(object):
def __new__(cls, *args, **kwargs):
return object.__new__(cls)
def __init__(self, name, age):
self.name = name
self.age = age
s1 = Student('Jack', 28)
s2 = Student('Bob', 25)
s3 = Student('Oliver', 20)
print(s1)
print(s2)
print(s3)
#显示结果:
#<__main__.Student object