774530750 发表于 2018-8-6 10:00:38

Python中的单例

  单例:是指创建对象时,在同一个类中只能访问同一个内存地址,
  作用:单例可以实现不通模块之间的数据共享
  #定义单列类
  class Singleton(object):
  #定义类属性保存创建对象结果
  singleton = None
  #是否第一次初始化
  is_first = False
  def new(cls, *args, **kwargs):
  #判断类属性是否为None,非空表示要创建对象
  if not cls.singleton:
  #保存创建对象
  cls.singleton = object.new(cls)
  #对象创建以后以及第一次创建都需要把结果返回
  return cls.singleton
  def init(self, name, age):
  #判断是否是第一次进行初始化,不是第一次,则不再初始化
  #一般我们只需要对new进行判断,确定每次创建指向的内存地址不变
  if not self.class.is_first:
  self.name = name
  self.age = age
  #初始化完成,设置成已经初始化状态
  self.class.__is_first = True
  代码运行结果如下:
页: [1]
查看完整版本: Python中的单例