单例模式
确保某一个类中只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象型模式。
方法一:
class User(object):
__instance =None
def __init__(self,name):
self.name = name
@classmethed
def get_instance(cls,name):
if not cls.__instance:
cls.__instance = User(name)
return cls.instance
#u1 = User("zs")
#u2 = User("ls")
u1 = User.get_instance("zs")
u2 = User.get_instance("ls")
print(u1==u2) # ==判断这两个对象是一个对象,并且内存地址相同
print(u1.name,u2.name)
True
zs zs
方法二:
class User(object):
__instance = None
def __init__(self,name):
self.name = name
def __new__(cls,name):
if not cls.__instance:
cls.__instance = object.__new__(cls)
return cls.__instance
u1 = User("zs")
u2 = User("ls")
print(u1==u2) # ==判断这两个对象是一个对象,并且内存地址相同
print(u1.name,u2.name)
True
ls ls